1

HTMLマークアップは次のようになります

<ul>
  <li>red</li>
  <li>green</li>
  <li>
  <ul>
       <li>banana</li>
       <li>pineapple</li>
       <li>peanut</li>
  </ul>
  </li>
  <li>blue</li>
  <li>
  <ul>
       <li>sun</li>
       <li>mars</li>
       <li>earth</li>
  </ul>
  </li>
  <li>orange</li>
</ul>

<li>このリストで直接の子()をカウントするにはどうすればよいですか?(赤、緑、青、オレンジを含むアイテム)?

4

3 に答える 3

4

これを試して:

$('ul > li').length;

'ul > li'セレクターポイントは、最初のレベルの子のみ、つまりすべてのulの直接の子です。

また

$('ul').children().length; 

コードが次のような文字列変数の場合

var html = '<ul><li>.....';

それで

$('ul > li', $(html)).length;

注:上記のコードはすべてのliを検索します

最初のレベルの使用のみを見つけるにliは:

$('ul:not(li > ul)').children().length;

次のものも使用できます。

$('ul:not(li > ul) > li').length

HTML変数文字列の場合:

$(html).children('ul > li').length;
于 2012-05-19T17:42:45.547 に答える
2

これを使って:

$("ul > li").length

他の方法:

$("ul").children().length

JQueryのドキュメントにはsize()、要素の数を取得するためのメソッドもあります。ただし、length単純に高速であるため、を使用することをお勧めします。

最初のul要素は:firstセレクターが取ることができます。もう1つの方法は、具象<ul>要素IDを設定し、#element_idセレクターでアドレス指定することです。

デモ:http: //jsfiddle.net/xDYn9/

于 2012-05-19T17:43:39.063 に答える
2
var ul = document.querySelector('ul');
var count = 0;
for (var ch = ul.firstChild; ch; ch = ch.nextSibling)
  if (ch instanceof HTMLLIElement) count++;
于 2012-05-19T17:44:11.053 に答える