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()を使用してタグも要素としてカウントしていることを除いて、各リストをループして、リストアイテムの数を特定しようとしています。リストアイテムがいくつ存在するかを知る必要があります。

さらに、jQuery('ul> li')。size()のようなものを使用することは、jQuery(でそれぞれ異なるものを参照しているため、.each()ループ内からアクセスできないため、これを行う方法がわかりません。これ)。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

'>' immediateChildセレクター

$('> li')使用するときに使用すること$(this).find()も、代わりに使用することもできます。

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