2

html:

<div id="a">
    <span></span>
    <img />
</div>

jQuery:

var a = $("#a").children().find("img"); 

它的显示a.length = 0。这里有什么问题?

4

2 回答 2

6

用这个:

$("#a").find("img");

find搜索选择器<img>的后代,并且不是任何<div id="a"> 直接子代的后代。

find 文档

描述:获取当前匹配元素集中每个元素的后代,由选择器、jQuery 对象或元素过滤。

现场演示

请注意,您可以使用更高效的选择器获得相同的结果:

$("#a img")...

descendant选择器文档

描述:选择作为给定祖先的后代的所有元素。

现场演示

于 2012-04-22T09:10:50.777 回答
5

children函数获取 div的所有子节点,然后find one 尝试查找名为“img”的子节点的后代。显然那是不存在的。正如 gdoron 指出的那样,您需要省略 children() 部分。

如果您不知道,请查看 JQuery 文档,这是一个非常好的参考:

http://api.jquery.com/category/traversing/

于 2012-04-22T09:13:59.633 回答