什么是这两个jQuery的语句之间的区别? 他们似乎通过让所有的孩子div标签做同样的事情。
$("#mainblock div")
$("#mainblock > div")
什么是这两个jQuery的语句之间的区别? 他们似乎通过让所有的孩子div标签做同样的事情。
$("#mainblock div")
$("#mainblock > div")
$("#mainblock > div")
=孩子的唯一水平
$("#mainblock div")
=所有孩子的+ desendents。
看一看jQuery的选择器
Child Selector ("parent > child")
-层次选择由“父母”指定元素的“小孩”中规定的所有直接子元素。
Descendant Selector ("ancestor descendant")
-层次选择是一个给定的祖先的后代的所有元素。
$("#mainblock div")
这一目标的所有div内“#mainblock”不管它是“#mainblock”直接子,或主块左右的儿童的孩子。
$("#mainblock > div")
这将针对“#mainblock”的唯一的直接孩子的DIV和忽略其他资料核实。 这是一个快于上述的情况下,你只有直接的孩子的。 因为它不是试图找到孩子的其他元素中。
第一个将得到所有div
第后裔#mainblock
。 第二个将得到所有div
S中的的直接子#mainblock
$("#mainblock div")
匹配任何div元素是#mainblock的后裔。
$("#mainblock > div")
匹配任何div元素是#mainblock的孩子。
检查http://www.w3.org/TR/CSS2/selector.html
第一个将选择任何的div是`#mainblock”的孩子在任何级别。 第二要选择任何的div是立即的孩子。
看到这个链接有关CSS的详细信息>
其行为等同于选择jQuery的 。
$( “#DIV mainblock”)找到所有下#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