Çocuk sayısını nasıl sayabilirim?


108

Bir listem var

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

Listemdeki öğelerin sayısını saymak için jQuery'ye ihtiyacım var.


1
unut jquerydocument.querySelectorAll('ul li').length
caub

Yanıtlar:


188

Bunun gibi kullanabilirsiniz .length:

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

.lengthseçicinin kaç tane eşleşme bulduğunu söyler, bu yüzden bu, kaç tane <li>alt <ul>öğenizin olduğunu sayar ... alt-alt öğeler varsa, "ul > li"bunun yerine yalnızca doğrudan alt öğeleri elde etmek için kullanın . <ul>Sayfanızda başka öğeler varsa , seçiciyi yalnızca onunkiyle eşleşecek şekilde değiştirin, örneğin kullanacağınız bir kimliği varsa"#myListID > li" .

Alt türünü bilmediğiniz diğer durumlarda, *(joker karakter) seçiciyi kullanabilir veya .children()bunun gibi:

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

veya:

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

1
Ya çocuğun "li" olduğu ve herhangi bir şey olabileceği bilinmiyorsa?
Starx

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

1
@AlecAnanian, Hayır, nasıl yapılacağını biliyorum. Demek istediğim, Nick'in de bunu cevabına ekleyeceğini umuyordum.
Starx

2
@Starx - yolun aşağısında birkaç kişiye yardımcı olması durumunda eklendi :)
Nick Craver

Ya öğe görünmüyorsa?
ᴍᴀᴛᴛ ʙᴀᴋᴇʀ

6

Bunun için jQuery'ye ihtiyacınız yok. JavaScript'i kullanabilirsiniz.childNodes.length .

Varsayılan metin düğümünü dahil etmek istemiyorsanız (varsayılan olarak boştur) 1'i çıkardığınızdan emin olun. Bu nedenle, aşağıdakileri kullanırsınız:

var count = elem.childNodes.length - 1;

1

Kullanmaya çalışın:

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

0

Ya bunu, altlarını bulmak için mevcut seçiciyi belirlemek için kullanıyorsanız, bu geçerli: <ol>o zaman <li>bir seçici yazmanın var count = $(this+"> li").length;işe yaramayacağı altında s var ..


ol yazabilir bir sınıf varsa$("ol.class > li").length
Qwerty

0

Bunu jQuery kullanarak yapabilirsiniz:

Bu yöntem çocuklarının bir listesini alır ve bu listenin uzunluğunu bu kadar basit bir şekilde sayar.

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

Find () yöntemi, DOM'u nesiller boyunca aşağıya, son nesle kadar ilerler.

Not: children () yöntemi, DOM ağacında tek bir düzey ilerler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.