jQuery:li标记的第一级计数(不包括下级ul> li标记)

问题描述 投票:3回答:4

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。

jquery html count html-lists
4个回答
8
投票

$("#top_nav > li").size()应该可以解决问题。

这是有效的,因为类似于foo > bar的选择器会选择foo的直条子项。 size()函数返回所选实体的数量。


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")

1
投票

David和Jasper都提供了很好的选择,但是您还必须过滤具有ul子的li以获得4作为输出:

$("#top_nav > li").filter(function() {
    return $(this).children('ul').length == 0;
}).size()​

0
投票

大家好,我将如何执行完全相同的步骤,但是在普通的javascript中我没有尝试过jquery

document.getElementById(“ list”)。getElementsByTagName(“ li:first-child”)。length

© www.soinside.com 2019 - 2024. All rights reserved.