这两个 jQuery 语句有什么区别?他们似乎通过获取所有子 div 标签来做同样的事情。
$("#mainblock div")
$("#mainblock > div")
这两个 jQuery 语句有什么区别?他们似乎通过获取所有子 div 标签来做同样的事情。
$("#mainblock div")
$("#mainblock > div")
$("#mainblock > div")
=孩子的唯一级别
$("#mainblock div")
=所有孩子+后代。
看看 jQuery选择器
Child Selector ("parent > child")
- 层次结构选择由“父”指定的元素的“子”指定的所有直接子元素。
Descendant Selector ("ancestor descendant")
-
层次结构选择作为给定祖先的后代的所有元素。
$("#mainblock div")
这一目标针对“#mainblock”内的所有DIV,无论它是“#mainblock”的直接子代,还是主块的子代的子代等等。
$("#mainblock > div")
这将仅针对“#mainblock”的直接子 DIV,而忽略其他 DIV。如果您只有直接的孩子,这个比上面更快。因为它不是试图在孩子的其他元素中找到。
第一个将获得所有div
s 的后代#mainblock
。第二个将获得所有div
直接子级的 s#mainblock
$("#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
$("#mainblock div")
匹配任何属于#mainblock 后代的div 元素。
$("#mainblock > div")
匹配任何属于 #mainblock 子级的 div 元素。