を使用して、返されたデータ内でdiv
を含む要素を検索しようとしています。残念ながら、は返されません。id="result"
.ajax()
.find()
alert(result)
div#result
これが私のコードです:
$.ajax({
url: url,
cache: false,
success: function(response) {
result = $(response).find("#result");
alert(response); // works as expected (returns all html)
alert(result); // returns [object Object]
}
});
ベストアンサー1
具体的に質問にお答えすると、正しく動作しているようです。 を返すとおっしゃいましたが[object Object]
、これは jQuery が メソッドで返すものですfind("#result")
。クエリに一致する jQuery 要素を返しますfind
。
次のように、そのオブジェクトの属性を取得してみてください。result.attr("id")
が返されるはずですresult
。
#result
一般的に、この答えは、が最上位の要素であるかどうかによって異なります。
#result
が最上位要素である場合、
<!-- #result as top level element -->
<div id="result">
<span>Text</span>
</div>
<div id="other-top-level-element"></div>
find()
動作しません。代わりに以下を使用してくださいfilter()
:
var $result = $(response).filter('#result');
#result
トップレベルの要素でない場合は、
<!-- #result not as top level element -->
<div>
<div id="result">
<span>Text</span>
</div>
</div>
find()
働くでしょう:
var $result = $(response).find('#result');