子供の数を数えるにはどうすればよいですか?


108

リストがあります

<ul>
  <li>
  <li>
  <li>
  ...
</ul>

リスト内のアイテムの数をカウントするには、jQueryが必要です。


1
jqueryを忘れるdocument.querySelectorAll('ul li').length
caub

回答:


188

次の.lengthようにを使用できます。

var count = $("ul li").length;

.length見つかったセレクタと一致する数を通知します。これにより、所有している<li>under <ul>要素の数がカウントされます...サブ子がある場合は、"ul > li"代わりに使用して直接の子のみを取得します。<ul>ページに他の要素がある場合は、セレクターを変更してセレクターのみに一致させます"#myListID > li"。たとえば、使用するIDがある場合などです。

子のタイプがわからない他の状況では、次のように*(ワイルドカード)セレクターまたはを使用できます.children()

var count = $(".parentSelector > *").length;

または:

var count = $(".parentSelector").children().length;

1
子供が「李」であることが知られていない場合、どうなるのでしょうか?
Starx 2012

7
@Starx:$("#parent").children().length
rekamoyka 2012

1
@AlecAnanian、いや、私は知っている。私はニックが彼の答えにもそれを追加することを望んでいたことを意味します。
Starx 2012

2
@Starx-将来的にいくつかの人々を助けるために追加されました:)
Nick Craver

要素が表示されない場合はどうなりますか?
ʙᴀᴋᴇʀᴍᴀᴛᴛ

6

これにはjQueryは必要ありません。JavaScriptを使用できます.childNodes.length

デフォルトのテキストノード(デフォルトでは空)を含めない場合は、必ず1を引いてください。したがって、以下を使用します。

var count = elem.childNodes.length - 1;

1

使用してみてください:

var count = $("ul > li").size();
alert(count);

0

これを使用して現在のセレクターを決定し、その子を見つけるためにこれが成立する<ol>場合は<li>どうなりますか?次に、セレクターの作成方法が機能し var count = $(this+"> li").length;ない場合があります。


$("ol.class > li").length
OL

0

jQueryを使用してこれを行うことができます。

このメソッドは、その子のリストを取得し、そのリストの長さを単純な数だけカウントします。

$("ul").find("*").length;

find()メソッドは、DOMを子孫に沿って下向きに、最後の子孫まで下に移動します。

注: children()メソッドは、DOMツリーを1レベル下に移動します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.