การนับจำนวนแท็กตัวเลือกในแท็กที่เลือกใน jQuery


159

ฉันจะนับจำนวน<option>s ใน<select>องค์ประกอบ DOM โดยใช้ jQuery ได้อย่างไร

<select data-attr="dropdown" id="input1">
  <option value="Male" id="Male">Male</option>
  <option value="Female" id="Female">Female</option>
</select>

ฉันต้องการค้นหาจำนวน<option>แท็กใน<select>องค์ประกอบ DOM เนื่องจากเมื่อฉันต้องการเปิดแผงการตั้งค่าที่มีจำนวนฟิลด์อินพุตที่มีค่าตัวเลือกที่สอดคล้องกันจากกล่องแบบเลื่อนลงในนั้นและเปลี่ยนอีกครั้งในหน้าตัวอย่าง แผงหน้าปัด.

ช่องแบบเลื่อนลงด้านบนอยู่ในแผงตัวอย่างของฉันซึ่งสร้างโดย jQuery

คำตอบ:



51

โซลูชัน W3C:

var len = document.getElementById("input1").length;

5
การเปลี่ยนแปลงของวิธีการนี้ด้วยจาวาสคริปต์ที่ทันสมัยจะเป็นอย่างไร var len = document.querySelector("#input1").length;
Jacob Nelson

22

คุณสามารถใช้ระยะเวลาในทรัพย์สินและlengthเป็น perfomance sizeดีขึ้นแล้ว

$('#input1 option').length;

หรือคุณสามารถใช้ฟังก์ชั่นขนาดเช่น

$('#input1 option').size(); 

การสาธิต


2
นี่ไม่ได้ให้คำตอบอะไรจากปี 2009 ที่ไม่ได้ให้ด้วย
TylerH

18

คำถามของคุณค่อนข้างสับสน แต่สมมติว่าคุณต้องการแสดงจำนวนตัวเลือกในแผงควบคุม:

<div id="preview"></div>

และ

$(function() {
  $("#preview").text($("#input1 option").length + " items");
});

ไม่แน่ใจว่าฉันเข้าใจคำถามที่เหลือของคุณหรือไม่


14

ในกล่องตัวเลือกแบบหลายตัวเลือกคุณสามารถใช้$('#input1 :selected').length;เพื่อรับจำนวนตัวเลือกที่เลือก สิ่งนี้มีประโยชน์ในการปิดใช้งานปุ่มหากไม่สามารถทำตามตัวเลือกขั้นต่ำจำนวนหนึ่งได้

function refreshButtons () {
    if ($('#input :selected').length == 0)
    {
        $('#submit').attr ('disabled', 'disabled');
    }
    else
    {
        $('#submit').removeAttr ('disabled');
    }
}

ฉันพบสิ่งนี้เพื่อทำงานหลังจากลบวงเล็บปีกกาที่$('#input1 :selected').length; รองรับเอกสารapi.jquery.com/length
Leonard Kakande

6

ตกลงฉันมีปัญหาเล็กน้อยเพราะฉันอยู่ข้างใน

$('.my-dropdown').live('click', function(){  
});

ฉันมีหลายรายการในหน้าของฉันนั่นคือเหตุผลที่ฉันใช้ชั้นเรียน

รายการแบบหล่นลงของฉันถูกเติมโดยอัตโนมัติโดยคำขอ ajax เมื่อฉันคลิกมันดังนั้นฉันจึงมีองค์ประกอบ $ (สิ่งนี้)

ดังนั้น...

ฉันต้องทำ:

$('.my-dropdown').live('click', function(){
  total_tems = $(this).find('option').length;
});

6

แบบฟอร์มที่ดีที่สุดคือสิ่งนี้

$('#example option').length

Sadikhasan เป็นโซลูชันที่ใช้โค้ดเท่านั้น (ราคาต่ำ) นี้ การใช้งานlengthถูกโพสต์โดย Karim79 9 ปีก่อนหน้านี้ สามารถลบคำตอบนี้ออกจากหน้าได้อย่างปลอดภัยเนื่องจากซ้ำซ้อนอย่างสมบูรณ์
mickmackusa

-1

อีกแนวทางหนึ่งที่มีประโยชน์

$('#select-id').find('option').length

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