JQuery:遍历多个<select>元素</select> </option>中的所有<option>元素

时间:2013-02-22 00:11:30

标签: jquery

我有一个多元素如下:

<select id="mySelect" multiple>
   <option value="1">Option 1</option>
   <option value="2">Option 2</option>
   <option value="3">Option 3</option>
</select>

我想迭代这个多选列表并读取所有选项的值。我在另一个页面上有这个JQuery,它遍历多选元素中的所有选定选项,如下所示:

$('#mySelect option:selected').each(function(){ ... });

如何修改上述语句,以便.each将逐个返回所有选项,而不仅仅是那些被选中的选项?

我试过这些:

$('#mySelect option').each(function(){ ... });    

$('#mySelect option').children().each(function(){ ... });

$('#mySelect option').children(function(){ ... });

$('#mySelect > option').each(function(){ ... });

但没有效果。

编辑:对不起大家在这里我的第一个声明中的拼写错误然后我将其复制/粘贴4x's。在我的实际代码中,#存在,但它不起作用。

UGGHHH LOL错误不是我的JQuery,而是我的html选择元素。我使用的是name属性而不是id。

3 个答案:

答案 0 :(得分:8)

您的选择器缺少#

$('#mySelect option').each(function(){ ... });    
   ^

如果没有#,则会查找<mySelect>元素。

答案 1 :(得分:5)

可能你错过了ready function喜欢:

LIVE DEMO

$(function(){ // DOM is ready

    var myOptions = [] ;

    $('#mySelect option').each(function(){
      myOptions.push( this.value );
    });

    alert(  myOptions ); // 1,2,3

});

答案 2 :(得分:2)

将其更改为:

$('#mySelect option')

现在你可以这样:

$('mySelect option')

正在寻找mySelect类型的元素。 #指定您匹配ID