Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
html:
<div id="a"> <span></span> <img /> </div>
jQuery:
var a = $("#a").children().find("img");
它的显示a.length = 0。这里有什么问题?
a.length = 0
用这个:
$("#a").find("img");
find搜索选择器<img>的后代,并且不是任何<div id="a"> 直接子代的后代。
find
<img>
<div id="a"
find 文档:
描述:获取当前匹配元素集中每个元素的后代,由选择器、jQuery 对象或元素过滤。
现场演示
请注意,您可以使用更高效的选择器获得相同的结果:
$("#a img")...
descendant选择器文档:
descendant
描述:选择作为给定祖先的后代的所有元素。
children函数获取 div的所有子节点,然后find one 尝试查找名为“img”的子节点的后代。显然那是不存在的。正如 gdoron 指出的那样,您需要省略 children() 部分。
如果您不知道,请查看 JQuery 文档,这是一个非常好的参考:
http://api.jquery.com/category/traversing/