2009-07-20 201 views
136

如何使用jQuery來統計選定DOM元素中的選項數量。計算JQuery中的選擇Dom元素中選項標記的數量

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

如何找到在select DOM元素選項標籤的數量,因爲與我要開個;從下拉框,並改變相應的選項值數輸入字段的設置面板它再次在預覽面板中。

上述下拉框位於由jQuery生成的預覽面板中。

回答

16

你的問題是有點混亂,但假設你想在一個面板中顯示的選項數目:

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

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

不知道我理解你的問題的其餘部分。

47

W3C的解決方案:

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

這種方法與莫的變化dern javascript將是 `var len = document.querySelector(「#input1」)。length;` – 2014-06-19 09:44:32

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

這將產生2

這裏是工作Fiddle

+90

改爲使用長度。從文檔:「.size()方法在功能上等同於.length屬性;但是,.length屬性是首選的,因爲它沒有函數調用的開銷。」 – Lee 2011-08-26 05:04:09

+7

**警告:**「[.size()`方法從jQuery 1.8開始被棄用,改爲使用`.length`屬性](https://api.jquery.com/size/)」。 – Pang 2017-02-25 02:42:28

5

好吧,我有幾個問題,因爲我是一個

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

我的頁面中有多個,這就是爲什麼我使用了一個類。

我的下拉被一個Ajax請求,當我點擊它會自動填寫,所以我只用了元素$(本)

所以......

我不得不這樣做:

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

在多選選項框中,您可以使用$('#input1 :selected').length;來獲取所選選項的數量。如果不滿足某個最小數量的選項,這可以用於禁用按鈕。

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

您可以使用length財產和length是更好的性能比較,然後size

$('#input1 option').length; 

或者您也可以使用size功能像

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

Demo

1

最好的形式是這樣的

$('#example option').length