Sizzle不会返回与选择器匹配的所有元素。以下JSBin Demo显示了问题。
<h4> Playing with Sizzle JS </h4>
<ul class="list">
<li> Item 1 </li>
<li class="row"> Item 2 </li>
<li class="row"> <span>Item 3</span> </li>
<li class="divider">List item with unique class name </li>
</ul>
<ul class="list">
<li> Item 1 </li>
<li class="row"> Item 2 </li>
<li class="row"> <span>Item 3</span> </li>
<li class="divider">List item with unique class name </li>
</ul>
var selector = 'UL.list > LI:eq(1)';
var elements = Sizzle(selector);
console.log(elements.length); //Says 1
我的问题是:
为什么它只返回1个元素,而有2个元素与选择器匹配? 如何让sizzle返回所有匹配的元素?
答案 0 :(得分:1)
UL.list > LI:eq(1)
只返回一个元素:匹配UL.list > LI
的第二个元素,如:eq(1)
所示。
如果您要查找所有li
元素,请移除:eq()
。
如果您正在寻找第二个孩子的每个li
,请使用:nth-child()
:
var elements = Sizzle('UL.list > LI:nth-child(2)');