我有一个多元素如下:
<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。
答案 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