HTMLをAjax経由でロードすると、データが常に文字列として返され、通常のjQueryセレクタをレスポンスに適用できなくなります。データを$(data)に変換すると、$(data)は本体の内容のコレクション(jQuery内部のclean()メソッドで取り除かれます)として、bodyにアクセスすることもできなくなります。この意志は
$.get('http://your_url', function(data) {
$('.result').html(data);
});
:あなただけのどこかにあなたがこれを行うことができ、ドキュメントにロードされたHTMLのボディを追加したい場合は
:あなたは結果に何をしたいかに応じて、いくつかのオプションを持っています本体の内容だけを.resultコンテナにロードします。それ以上の処理をしたい場合はそこからセレクタにアクセスできます。
アタッチされていないフラグメントを操作したい場合は、フィルタ& getを使用して要素にアクセスできます。
$(data).filter('p').get() //will get all para DOM nodes
$($(data).filter("#test2").get()).text() //will get text of one specific dom node
あなたはそれをXMLとしてそれを処理するために速いかもしれない体のデータを処理したい場合は別のオプション - http://think2loud.com/224-reading-xml-with-jquery/でのXML処理一見のため。 例を使用すると、次のようになります。
$.ajax({
url : "http://mypage",
dataType : 'xml', //change dataType to XML
success : function(data) {
//data is correct at this point
$(data).find('html').each(function() {
//here you can find whatever you want
a = $(this).find("body")
console.log(a);
})
}
})
実際のコードですか?空の 'body'変数を' .find() 'に渡しています。 –
'data'がHTML文書全体である場合、いくつかのブラウザでは'
'要素を見つけることに問題があります。 –