jQuery: Liste öğelerinin sayısını say?


134

Bazı sunucu tarafı kodundan oluşturulan bir liste var, jQuery ile ekstra şeyler eklemeden önce içinde kaç öğe olduğunu anlamaya ihtiyacım var.

<ul id="mylist">
    <li>Element 1</li>
    <li>Element 2</li>
</ul>

Yanıtlar:


225

Deneyin:

$("#mylist li").length

Sadece merak ediyorum: neden boyutu bilmeniz gerekiyor? Sadece kullanamaz mısın:

$("#mylist").append("<li>New list item</li>");

?


3
Yeni olanları eklemek için ekleme yapıyorum, ancak listede olabilecek öğe sayısında bir sınırım var, bu durumda kullanıcı hala en fazla 4 öğe ekleyebilir, ancak 2 tane gelmiş olabilir önceki durumdan. :)
— Tom

35
JQyery belgelerinin , bir işlev çağrısının ek yükünü önlemek için .lengthover kullanılmasını önerdiğini unutmayın .size(). api.jquery.com/size
— Joe


8
@ gloomy.penguin Bunun .lengthbir işlev olmadığını unutmayın .
— hekzasiyanid

Anında öğe genişliğini yeniden hesaplamak için <li> sayısı gerekir.
— Hristo

51
var listItems = $("#myList").children();

var count = listItems.length;

Elbette bunu yoğunlaştırabilirsiniz

var count = $("#myList").children().length;

JQuery ile ilgili daha fazla yardım için http://docs.jquery.com/Main_Page başlamak için iyi bir yerdir.


5
sadece güvenli olmak için $ ("# myList"). children ("li"). length; Herhangi bir nedenle listeye başka öğeler eklerseniz, bu küçük kod satırını unutmazsınız.
— SgtPooki

10

.Size () yöntemi veya .length özelliği çağrılırken aynı sonuca sahipsiniz, ancak bir işlev çağrısının ek yükü olmadığından .length özelliği tercih edilir. En iyi yol:

$("#mylist li").length

4

Bunun yapması gerektiğini düşünüyorum:

var ct = $('#mylist').children().size(); 

4

ve elbette aşağıdakiler:

var count = $("#myList").children().length;

şu şekilde yoğunlaştırılabilir: (bir değişken ayarlamak için gerekli olmayan 'var' kaldırılarak)

count = $("#myList").children().length;

ancak bu daha temizdir:

count = $("#mylist li").size();

2
Bu yöntem aynı zamanda üst ul öğesinin alt ul öğeleri içindeki li etiketleri saymaz mı?
— 10'da atripes

2
"Değişken ayarlamak için" var "demek gerekli değildir. 'Var' kullanmazsanız, tüm değişkenleriniz global olur. Bkz. Stackoverflow.com/questions/1470488/…
— Rafael Almeida


1

Liste öğelerinin sayısını say

alert($("#mylist > li").length);

1

Liste öğelerinin sayısını saymak için başka bir yaklaşım:

var num = $("#mylist").find("li").length;
console.log(num);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="mylist">
  <li>Element 1</li>
  <li>Element 2</li>
  <li>Element 3</li>
  <li>Element 4</li>
  <li>Element 5</li>
</ul>


0

$("button").click(function(){
    alert($("li").length);
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
  <meta charset="utf-8">
  <title>Count the number of specific elements</title>
</head>
<body>
<ul>
  <li>List - 1</li>
  <li>List - 2</li>
  <li>List - 3</li>
</ul>
  <button>Display the number of li elements</button>
</body>
</html>

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.