0

有谁知道如何从 .each() 循环中计算元素的第一级子级?

例如,我的页面上有几个列表,就像这样......

<ul>
    <li><a href="#">item1</a></li>
    <li><a href="#">item2</a></li>
    <li><a href="#">item3</a></li>
    <li><a href="#">item4</a></li>
</ul>
<ul>
    <li><a href="#">item1</a></li>
    <li><a href="#">item2</a></li>
    <li><a href="#">item3</a></li>
    <li><a href="#">item4</a></li>
    <li><a href="#">item5</a></li>
    <li><a href="#">item6</a></li>
</ul>
<ul>
    <li><a href="#">item1</a></li>
    <li><a href="#">item2</a></li>
    <li><a href="#">item3</a></li>
</ul>

我试图遍历每个列表并确定它有多少列表项,除了使用 jQuery .size() 也将标签计为元素。我只需要知道存在多少列表项。

此外,我不确定如何执行此操作,因为无法从 .each() 循环中访问 jQuery('ul > li').size() 之类的东西,因为我使用 jQuery(这)。有没有办法做类似 jQuery(this ' > li') 的事情?因为那对我也不起作用:)

这是我一直在尝试的,但我没有任何运气:

jQuery('ul').each(function() {
    var count = jQuery(this).find('li').size();
    alert(count);
});
4

3 回答 3

2

你可以使用length属性:

$('ul').each(function() {
    var count = $(this).find('li').length;
    alert(count);
});

或者如果你想选择直接子 li 标签,你可以尝试:

$('ul').each(function() {
    var count = $('> li', this).length;
    alert(count);
});
于 2012-07-26T20:23:19.303 回答
0

'>'立即子选择器

您可以在使用$('> li')时使用$(this).find()或交替使用,

$('ul').each(function(){
  var length = $('>li', this).length;
  alert(length);
  });
于 2012-07-26T20:26:11.633 回答
0

试试这个。我觉得好多了。

var rt = 0;
$('ul').each(function() {
    rt++;    
});

alert(rt);
于 2014-01-21T10:53:03.653 回答