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

iJa*_*red 2 jquery

我有一个多元素如下:

<select id="mySelect" multiple>
   <option value="1">Option 1</option>
   <option value="2">Option 2</option>
   <option value="3">Option 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

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

$('#mySelect option:selected').each(function(){ ... });
Run Code Online (Sandbox Code Playgroud)

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

我试过这些:

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

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

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

$('#mySelect > option').each(function(){ ... });
Run Code Online (Sandbox Code Playgroud)

但都没有用.

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

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

Ble*_*der 8

您的选择器缺少#:

$('#mySelect option').each(function(){ ... });    
   ^
Run Code Online (Sandbox Code Playgroud)

如果没有#,你会寻找<mySelect>元素.


Rok*_*jan 5

可能你错过了ready function这样的:

LIVE DEMO

$(function(){ // DOM is ready

    var myOptions = [] ;

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

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

});
Run Code Online (Sandbox Code Playgroud)