繁体   English   中英

jquery从JSON数组中的选择框中收集所有选项值

[英]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')将返回idx所有元素 - 它们应该只是一个元素 - 然后.each()将迭代该元素集(因此它将调用该函数一次) 。 您最终会得到一个包含单个值的数组,该值将是<select>输入的当前选定值。

相反,使用$('#x > option')将返回所有<option>元素,这些元素是idx<select>元素的直接子元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM