小编典典

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

ajax

尝试使用从返回的数据中查找具有的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]
    }
});

阅读 244

收藏
2020-07-26

共1个答案

小编典典

要具体回答您的问题,它似乎工作正常。您说它返回[object Object],这是jQuery随find("#result")方法返回的结果。它返回与find查询匹配的jQuery元素。

尝试获取该对象的属性,例如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');
2020-07-26