HTML:
<ul id='top_nav'>
<li><a href="">xxx</a></li>
<li><a href="">xxx</a></li>
<li><a href="">xxx</a></li>
<li>
<ul>
<li><a href="">xxx</a></li>
<li><a href="">xxx</a></li>
</ul>
</li>
<li><a href="">xxx</a></li>
</ul>
问题:
如何计算第一级li标签的数量?所以在这个例子中,输出将是5,而不是7。
答案 0 :(得分:8)
$("#top_nav > li").size()
应该可以解决问题。
这是有效的,因为类似于foo > bar
的选择器会选择匹配bar的foo的直接子节点。 size()
函数返回所选实体的数量。
答案 1 :(得分:2)
在查询中使用一些css,使其变得更加简单。请记住,jQuery已经完成了所有艰苦的工作,所以你也没有:
$("ul li:first-child")
// the previous simply is a call to all unordered list items that re first in the list
$("ul li:first-child").length
// the previous will get you the total count of all first list items
LOL刚刚意识到我误解了这个问题,在这种情况下答案已经存在了
$("#top_nav > li")
答案 2 :(得分:1)
David和Jasper都给出了很好的选择,但你还必须过滤掉有一个ul子项的li来获得4作为输出:
$("#top_nav > li").filter(function() {
return $(this).children('ul').length == 0;
}).size()