jQuery: นับจำนวนองค์ประกอบรายการ?


135

ฉันมีรายการที่สร้างขึ้นจากโค้ดฝั่งเซิร์ฟเวอร์ก่อนที่จะเพิ่มสิ่งพิเศษลงไปด้วย jQuery ฉันต้องหาว่ามีกี่รายการอยู่แล้ว

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

คำตอบ:


225

ลอง:

$("#mylist li").length

แค่อยากรู้: ทำไมคุณต้องรู้ขนาด? คุณไม่สามารถใช้:

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

เหรอ?


3
ฉันใช้ต่อท้ายเพื่อเพิ่มรายการใหม่ แต่ฉันมีข้อ จำกัด เกี่ยวกับจำนวนรายการที่สามารถอยู่ในรายการได้ในสถานะนี้ผู้ใช้ยังสามารถเพิ่มได้สูงสุด 4 รายการ แต่อาจมี 2 รายการ จากสถานะก่อนหน้า :)
ทอม

35
โปรดทราบว่าเอกสาร jQyery แนะนำให้ใช้.lengthover .size()เพื่อหลีกเลี่ยงค่าใช้จ่ายในการเรียกฟังก์ชัน api.jquery.com/size
โจ

4
size () เลิกใช้แล้วใน jquery 1.8และบอกว่าให้ใช้length ()ทันที
gloomy.penguin

8
@ gloomy.penguin หมายเหตุนั่น.lengthไม่ใช่ฟังก์ชัน
hexacyanide

ฉันต้องการจำนวน <li> เพื่อที่จะคำนวณความกว้างขององค์ประกอบใหม่ได้ทันที
Hristo

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

var count = listItems.length;

แน่นอนคุณสามารถย่อสิ่งนี้ได้ด้วย

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

หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับ jQuery http://docs.jquery.com/Main_Pageเป็นจุดเริ่มต้นที่ดี


5
เพื่อความปลอดภัยทำ $ ("# myList"). children ("li"). length; หากคุณเคยเพิ่มรายการอื่น ๆ ในรายการไม่ว่าด้วยเหตุผลใดก็ตามคุณจะไม่ลืมรหัสบรรทัดเล็ก ๆ นี้
SgtPooki

10

คุณจะได้ผลลัพธ์เดียวกันเมื่อเรียกเมธอด. size () หรือคุณสมบัติ. length แต่แนะนำให้ใช้คุณสมบัติ. length เนื่องจากไม่มีค่าใช้จ่ายในการเรียกฟังก์ชัน ดังนั้นวิธีที่ดีที่สุด:

$("#mylist li").length


4

และแน่นอนสิ่งต่อไปนี้:

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

สามารถย่อเป็น: (โดยการลบ 'var' ซึ่งไม่จำเป็นในการตั้งค่าตัวแปร)

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

อย่างไรก็ตามสิ่งนี้สะอาดกว่า:

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

2
วิธีนี้ไม่นับแท็ก li ในองค์ประกอบลูกของ ul ด้านบนด้วยหรือไม่?
atripes

2
การพูดว่า "" var "ไม่จำเป็นต้องตั้งค่าตัวแปร" เป็นการทำให้เข้าใจง่ายเกินไป หากคุณไม่ใช้ 'var' ตัวแปรทั้งหมดของคุณจะจบลงทั่วโลก ดูstackoverflow.com/questions/1470488/…
Rafael Almeida



1

อีกวิธีหนึ่งในการนับจำนวนองค์ประกอบรายการ:

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>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.