jQuery无法从通过ajax调用返回的某些html中找到类元素

时间:2015-02-11 20:51:04

标签: javascript jquery html ajax

我正在运行一个ajax调用,它将一些HTML作为字符串返回。出于这个问题的目的,当我得到这个问题时,我会打电话给<div class='abc'>ABC123</div>我想检查并查看班级&#34; abc&#34;有价值,有什么价值。但是,当我运行.find()时,我找不到类,我可以找到div,但不能找到特定的类。仅使用div是不够的,因为在真实的实时代码中,HTML非常复杂并且具有许多div和类。下面是一些说明我的观点的JS。

var x = "<div class='abc'></div>"; 
$(x).hasClass("abc"); // returns true
$(x).find(".abc"); // Returns empty array

为什么第一行返回true,但是选择器找不到元素?

谢谢!

2 个答案:

答案 0 :(得分:3)

因为$x是具有类abc的div。

jquery .find()尝试在div.abc内找到任何与abc无法找到的子项。

这更像是它。

var x = "<div class='abc'><div class='def'></div></div>"; 
$(x).hasClass("abc"); // returns true
$(x).find(".def"); // returns $('div.def')

答案 1 :(得分:0)

当我们将html元素附加到页面时,由于父子关系,有时JQuery无法找到此元素。

例如:在具有id append_area的div中具有类<div id="append_area"> </div> 的按钮,我们希望在单击此按钮时运行函数。然后我们可以使用下面的代码。

HTML代码:

$("#results").delegate('.submit', 'click', function(){ });

Jquery代码:

{{1}}