Jquery子选择器与.each

时间:2011-08-05 16:37:26

标签: javascript jquery css-selectors

给出以下示例表:

<ul class="topnav">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>

有什么区别:

$selector1 = $('ul.topnav > li');

$selector2 = $('ul.topnav').each();

编辑:

$ selector2 = $('ul.topnav li')。each();

4 个答案:

答案 0 :(得分:4)

第一个将包含所有liul.topnav的直接子项,第二个将包含所有ul.topnav个元素。

答案 1 :(得分:2)

enter image description here

答案 2 :(得分:1)

$('ul.topnav > li')将直接在<li>下选择所有ul

each应该将一个函数作为参数,并迭代所有匹配的<ul> - 它不会占用子<li>。如果有的话,您需要$('ul.topnav').children(),如果ul仅包含li元素,则相同。

例如,这将alert每个列表中的子项数(在您的情况下,只有数字3

$selector2 = $('ul.topnav').each(function(){
   alert($(this).children().length);
});

另见jquery API

答案 3 :(得分:0)

第二个将单独评估它们,而第一个将评估它们作为一个组