これは見つけやすいと思いました:)
$.get('/page.html', function(data) {
//get only contents of class="contents"
});
私はそれを行う方法を見つけることができないようです。
これは見つけやすいと思いました:)
$.get('/page.html', function(data) {
//get only contents of class="contents"
});
私はそれを行う方法を見つけることができないようです。
私はこのようなことをします...
$.get('/page.html', function(data){
var $page = $(data)
var $contents = $page.filter('.contents'); /* this will get a reference to the .contents */
/* do more stuff here
....
*/
});
この SO に対する受け入れられた回答をご覧ください: Get HTML of div element returned by .get with jQuery
.find()
返されたコンテンツの構造が不明な場合 (子孫であるために使用する必要がある場合がある場合は.contents
、常にチェックを実行して実行するか、.filter()
またはその逆を行うことができます。
例:
$contents = $page.filter('.contents');
if($contents.length == 0) {
$contents = $page.find('.contents');
}
他の回答に投稿されたコメントに基づいた単なる考えです。
使用するだけ.find()
です:
$(data).find(".contents")
使用できる最終的なコードは次のとおりです。
$.get('/page.html', function(data) {
var contents = $(data).find(".contents");
});
次に、要素のタイプに応じて、または(ほとんどの要素)または(入力要素).contents
を使用できます。contents.html()
contents.text()
contents.val()
技術的には、別のアイデアは を使用すること.filter()
です。
これはすべて、 の HTML の構造に依存しますdata
。構造が次のような場合:
<div id="main">
blah blah
<div class="contents"></div>
</div>
の結果は$(data)
になり[#main]
、 を使用する必要がありますfind
。あなたの構造が次のような場合:
<div id="main"><div>
<div class="contents"></div>
<div class="another"></div>
の結果は$(data)
になり[#main, .contents, .another]
、 を使用する必要がありますfilter
。
もちろん、それらを組み合わせると、次のようになります。
$.get('/page.html', function(data) {
var all = $(data), contents;
contents = all.filter(".contents");
if (!contents.length) {
contents = all.find(".contents");
}
if (contents.length) {
// It/they was/were found at some point
}
});
返された から jQuery オブジェクトを作成data
し、jQuery セット内のラッパー要素が要素である場合、ターゲット要素の検索に失敗し、.contents
要素が子孫要素である場合、メソッドはその要素の選択に失敗します。ダミー要素を作成し、返されたデータを入力してメソッドを使用できます。find
contents
filter
find
$.get('/page.html', function(data) {
var element = $('<div/>').html(data).find('.contents');
});