2009-07-20 41 views
136

Cách đếm số lượng tùy chọn trong Phần tử DOM được chọn bằng cách sử dụng jQuery.Đếm số lượng thẻ tùy chọn trong phần tử Chọn Dom trong JQuery

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

Làm thế nào để tìm số tuỳ chọn thẻ trong các yếu tố select DOM từ với điều đó tôi muốn mở bảng điều khiển với số lĩnh vực đầu vào với giá trị tùy chọn tương ứng từ hộp thả xuống trong đó và thay đổi Cài đặt nó một lần nữa trong bảng Preview.

Trường hợp hộp thả xuống ở trên trong bảng xem trước của tôi được tạo bởi jQuery.

Trả lời

16

Câu hỏi của bạn là một chút bối rối, nhưng giả sử bạn muốn hiển thị số lượng tùy chọn trong một bảng điều khiển:

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

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

Không chắc tôi hiểu phần còn lại của câu hỏi của bạn.

47

Giải pháp W3C:

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

Một biến thể phương pháp này với mo dern javascript sẽ là 'var len = document.querySelector (" # input1 "). length;' –

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

này sẽ sản xuất 2.

Đây là làm việc Fiddle

+90

Sử dụng độ dài thay thế. Từ các tài liệu: "Phương thức .size() có chức năng tương đương với thuộc tính .length; tuy nhiên, thuộc tính .length được ưu tiên vì nó không có phí của một cuộc gọi hàm." – Lee

+7

** Cảnh báo: ** "[Phương thức' .size() 'không được dùng như jQuery 1.8. Sử dụng thuộc tính' .length' thay thế.] (Https://api.jquery.com/size/) ". – Pang

+0

Hoàn hảo! .. Cảnh báo không dùng nữa có quan trọng không? Hoặc chỉ không được chấp nhận? – toha

5

Ok, tôi đã có một vài vấn đề, vì tôi đang ở trong một

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

Tôi đã có bội số bên trong trang của tôi đó là lý do tại sao tôi sử dụng một lớp học.

thả xuống của tôi tràn ngập tự động bởi một yêu cầu ajax khi tôi nhấp vào nó, vì vậy tôi chỉ có các yếu tố $ (this)

như vậy ...

tôi phải làm:

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

Trong hộp tùy chọn đa lựa chọn, bạn có thể sử dụng $('#input1 :selected').length; để nhận số tùy chọn đã chọn. Điều này có thể hữu ích để vô hiệu hóa các nút nếu một số tùy chọn tối thiểu nhất định không được đáp ứng.

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

Tôi tìm thấy điều này để làm việc sau khi loại bỏ các niềng răng '$ ('# input1: selected'). Length;' tài liệu hỗ trợ https://api.jquery.com/length/ –

18

Bạn có thể sử dụng một trong hai length tài sản và length là tốt hơn Biến sau đó size.

$('#input1 option').length; 

HOẶC bạn có thể sử dụng size chức năng như

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

Demo

1

Các hình thức tốt nhất là này

$('#example option').length 
Các vấn đề liên quan