我有一个选择框。
<select id='x'>
<option value='1'>'Vineet'</option>
<option value='2'>'Vivek'</option>
<option value='3'>'Madhu'</option>
</select>
选项是动态添加的。最后,我想将此选择框中包含的所有选项元素的值收集到一个数组中。我在论坛中搜索了答案,但 Q/A 仅用于获取“已选择”选项。
我试过这个:
var myList = [];
$('#x').each(function() { myList.push( $(this).value() ) });
在 Firebug 中,它给出了这个错误:
missing } after property list
但我没有看到任何遗漏的 }
。我在这里做错了什么?
最佳答案
您需要遍历 select 中的每个 option
元素,而不仅仅是 select 本身,此外,在 jQuery 中获取输入值的正确方法是 val()
,试试这个:
myList = [];
$('#x option').each(function() {
myList.push($(this).val())
});
你也可以使用map()
:
var myList = $('#x option').map(function() {
return this.value;
}).get();
// A version of the above in ES6 (note: unsupported in IE)
let myList = $('#x option').map((i, el) => el.value).get();
在上述所有情况下,myList
变量将包含一个字符串数组。
关于javascript - jquery 从 JSON 数组中的选择框中收集所有选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258080/