这两个jQuery语句有什么区别?他们似乎通过获取所有子div标签来做同样的事情。
$("#mainblock div")
$("#mainblock > div")
答案 0 :(得分:16)
$("#mainblock > div")
=仅限孩子级别
$("#mainblock div")
=所有孩子+ desendents。
答案 1 :(得分:6)
看一下jQuery Selectors
Child Selector ("parent > child")
-
层次结构选择由“父”指定的元素的“子”指定的所有直接子元素。
Descendant Selector ("ancestor descendant")
-
层次结构选择作为给定祖先后代的所有元素。
答案 2 :(得分:4)
$("#mainblock div")
这个目标是“#mainblock”里面的所有DIV,不管它是“#mainblock”的直接子,还是主块子的孩子等等。
$("#mainblock > div")
这将仅定位“#mainblock”的直接子DIV并忽略其他DIV。如果你只有直接的孩子,这个比上面快。因为它不是试图找到孩子的其他元素。
答案 3 :(得分:3)
第一个将获得div
的所有#mainblock
后代。第二个将获得div
#mainblock
答案 4 :(得分:2)
$("#mainblock div")
匹配任何作为#mainblock的后代的div元素。
$("#mainblock > div")
匹配任何属于#mainblock的子元素的div元素。
答案 5 :(得分:1)
答案 6 :(得分:1)
$(" #mainblock div")找到#mainblock
下的所有div$(" #mainblock> div")只找到了它的孩子
假设你有以下HTML结构:
<div id="mainblock">
<div>
<div></div>
<div></div>
</div>
<div></div>
<div></div>
</div>
然后
$("#mainblock div").length = 5
$("#mainblock > div").length = 3