・jsファイル
---------------------------------------------------------------------------
$("#button").click(function() {
$.ajax({
type: 'GET',
url: 'file.html',
dataType: 'html',
success: function (data) {
console.log($('div', $(data)));
},
});
});
---------------------------------------------------------------------------
・file.html
---------------------------------------------------------------------------
<div class="test">test</div>
---------------------------------------------------------------------------
ちなみに、以下のようにdiv.testをdivでさらに囲んでやると取得することが出来るようです。
---------------------------------------------------------------------------
<div class="wrap">
<div class="test">test</div>
</div>
---------------------------------------------------------------------------
jQueryのバージョンは1.11、ブラウザはSafari 7.05を使用しています。
どのようなスクリプトで最上層の要素を取得することができるのでしょうか?
単純に
$(data)
でいいと思うんですが、もしcontextを使った表現にしたいのであれば、
$(':first-child', $(data)).parent()
とか書けば取得できると思います。
探したい要素が、ルートにあるかどうかが分からない場合に、不便だな、ってことに気が付きました。
jQuery.load は、URL の最後に、空白で区切ってセレクタを書くことで、対象の一部を読み込めます。
http://api.jquery.com/load/#loading-page-fragments
以下は、jQuery 1.10.2 の jQuery.load の実装の抜粋です。
}).done(function( responseText ) { // Save response for use in complete callback response = arguments; self.html( selector ? // If a selector was specified, locate the right elements in a dummy div // Exclude scripts to avoid IE 'Permission Denied' errors jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : // Otherwise use the full result responseText );
jQuery の実装にならって、こんな風にしてはどうでしょう。
$("#button").click(function() { $.ajax({ type: 'GET', url: 'file.html', dataType: 'html', success: function (data) { console.log($('.test', $('<div>').append(data))); }, }); });
ご回答頂きましたお二人とも非常に参考になりました。
どちらもベストアンサーなのですが、最初に頂きましたご回答をベストアンサーをさせて頂きました。
ありがとうございました。
をすると,どのように表示されるのでしょうか。
console.log(data)
をすると,どのように表示されるのでしょうか。
<<
jQuery.ajax() を使ったことが無いんでしょうか?
data は、String ですよ。
人力検索ではよくお見かけしますが、私に絡んでくれたのはこれが初めてかも…
私の上記のコメントの意味がわかりづらくてごめんなさいね。
自分が聞きたかった意図は、
dataという文字列の中身はどうなってますか、確認しましたか
↓
そのdataという文字列に対して$()のコンテキストを適用させたらどうなりますか
という誘導尋問でした。
jqueryの使い方や、console.logの使い方を知りたくて聞いたわけではありませんので
念のため…。
(jQueryはプラグイン開発とかしてます。)
>人力検索ではよくお見かけしますが、私に絡んでくれたのはこれが初めてかも…
あ、そうですか?
徘徊しているエリアが似ているので、あまり初めてという気がしません :-)
これからも、よろしくお願いします。