[英]jquery collect all option values from select box in a JSON array
我有一个选择框。
<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中,它给出了这个错误:
在属性列表之后丢失}
但我没有看到任何遗漏}
。 我在这做错了什么?
你需要遍历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();
在这两种情况下, myList
变量都将包含一个字符串数组。
尝试使用jQuery函数来获取元素的值(包装在jQuery对象中)是.val()
,而不是.value()
- 这可能会引起一些混乱,尽管我无法确定。
作为旁注,您的选择器不符合您的要求。 $('#x')
将返回id
为x
所有元素 - 它们应该只是一个元素 - 然后.each()
将迭代该元素集(因此它将调用该函数一次) 。 您最终会得到一个包含单个值的数组,该值将是<select>
输入的当前选定值。
相反,使用$('#x > option')
将返回所有<option>
元素,这些元素是id
为x
的<select>
元素的直接子元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.