นับองค์ประกอบด้วย jQuery


112

มีวิธีนับจำนวนองค์ประกอบในหน้าด้วยชั้นเรียนหนึ่ง ๆ หรือไม่?

คำตอบ:


229
$('.someclass').length

คุณยังสามารถใช้:

$('.someclass').size()

ซึ่งเทียบเท่าตามหน้าที่ แต่อดีตเป็นที่ต้องการ อันที่จริงตอนนี้เลิกใช้แล้วและไม่ควรนำมาใช้ในการพัฒนาใหม่ใด ๆ


ฉันไม่พบตำแหน่งนี้ แต่ฉันอ่านใน Meta เมื่อเร็ว ๆ นี้"คุณโหวตเพิ่มได้อย่างไร" และมีคำพูดของ Jeff Atwood "เมื่อใดก็ตามที่ฉันค้นหาปัญหาและพบคำตอบ" สถานการณ์ที่แน่นอนของฉัน
brasofilo

13
สังเกตว่า.size()วิธีนี้เลิกใช้แล้ว
Moshe Simantov

1
ด้วยเวอร์ชัน 3.1.1 ผลตอบแทนความยาวไม่ได้กำหนด
Giovanni Bitliner

1
@TylerLazenby: คุณแน่ใจเหรอ? jsfiddle.net/xpvt214o/154885 คุณมีตัวอย่างเพื่อแสดงการอ้างสิทธิ์ของคุณหรือไม่?
เดวิด

1
@TylerLazenby: รหัสในคำถามของคุณไม่ได้ใช้ jQuery คุณแค่ได้ความยาวของสตริงลิเทอรัล
เดวิด

20
var count_elements = $('.class').length;

จาก: http://api.jquery.com/size/

วิธีการ. size () เทียบเท่ากับคุณสมบัติ. length; อย่างไรก็ตามคุณสมบัติ. length เป็นที่ต้องการเนื่องจากไม่มีค่าใช้จ่ายในการเรียกฟังก์ชัน

โปรดมอง:

http://api.jquery.com/size/

http://api.jquery.com/length/


8

ใช่มี.

$('.MyClass').size()

1
$ ('. MyClass') ดีกว่าเล็กน้อยเนื่องจากไม่มีค่าใช้จ่ายในการเรียกเมธอด มิฉะนั้นทั้งสองจะเหมือนกันแน่นอน
EvilAmarant7x



4
$('.class').length

อันนี้ใช้ไม่ได้กับฉัน ฉันควรใช้สิ่งนี้:

$('.class').children().length

ฉันไม่รู้เหตุผลจริงๆว่าทำไม แต่อันที่สองใช้ได้กับฉันเท่านั้น ทำไมขนาดทั้งสองไม่ทำงาน


3

วิธีที่ดีที่สุดคือใช้. each ()

var num = 0;

$('.className').each(function(){
    num++;
});

2
"วิธีการ. each () ได้รับการออกแบบมาเพื่อให้โครงสร้างการวนซ้ำ DOM มีความกระชับและเกิดข้อผิดพลาดน้อยลง"
Panomosh

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