main
タグ内のコンテンツを置き換えて、Webサイトのページをajaxでロードしています。 問題は、Wordpressを使って、各ページに独自のbody
クラスがあり、スタイリングのために便利なので、古いページのボディクラスを次のページのクラスに置き換えたいと思います。
新しいAjaxリクエストを実行してHTMLページ全体を取得してから、body
要素をチェックしてから、.attr("class")
を使用してクラスのリストを取得し、最後に新しいボディクラスを置き換えます。
しかし、クラスは常にクラスリストの代わりにundefined
を返します。
EDIT:私は体の代わりに.cd-main-content
を使用しようとしましたが、奇妙なことに、この要素のクラスを取得します。だから私は今問題は私の構文から来るのではなく、要素自体から来ると仮定します。
body
要素ではどうすれば動作させることができますか? (私はすでに.filter
で.find
を交換しようとしたが、それはどちらか動作しません)jQuery - ajaxリクエストから要素のクラスを取得する方法
HTMLのstucture
<body id="body" class="home page-id-number other-classes">
<main>
<div class="cd-main-content">
<!-- inside is the dynamically loaded content-->
</div>
</main>
</body>
jQueryの
$.ajax({url: url,
success: function(data){
var body = $(data).find("#body");
var classes = body.attr("class");
console.log(data); //returns the html as expected
console.log("body : "+body); //returns [object Object]
console.log("classes : "+classes); //returns undefined
}
});
ああ、ボディータグを置き換えるのは良い考えです。 実際に私のソリューションを好むのは、htmlを変更する必要がないからです。ありがとうございました ! –