2009-07-20 87 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