jquery div子元素搜索

时间:2012-04-22 09:09:00

标签: jquery jquery-selectors

HTML

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

jQuery的:

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

显示a.length = 0。问题是什么?

2 个答案:

答案 0 :(得分:6)

使用此:

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

find搜索选择器的后代,<img>不是<div id="a"&gt;中任何一个的后代。直接儿童。

find docs

  

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

Live DEMO

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

$("#a img")...

descendant选择器docs

  

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

Live DEMO

答案 1 :(得分:5)

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

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

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