jQuery .find()对.ajax()调用的数据返回“[object Object]”而不是div

前端之家收集整理的这篇文章主要介绍了jQuery .find()对.ajax()调用的数据返回“[object Object]”而不是div前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试使用.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');

猜你在找的jQuery相关文章