尝试使用.find()在.ajax()的返回数据中查找id =“result”的div元素。不幸的是,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] } });
解决方法
要具体回答你的问题,它似乎工作正常。你说它返回[object Object],这是jQuery返回的find(“#result”)方法。它返回一个与find查询匹配的jQuery元素。
尝试获取该对象的属性,如result.attr(“id”) – 它应该返回结果。
一般来说,这个答案取决于#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');