获取所有选中的=“选中”值并放入数组

时间:2015-04-25 04:58:07

标签: javascript jquery

尝试在页面上获取具有selected="selected"属性的所有选项。

页面上有很多这样的实例,但我似乎只能将第一个实例保存到数组中。

selected="selected"如何显示:

<select bind-event-change="disableHiddenInputs()" bind="appliesToResource6" id="link_list_links__link_type" name="link_list[links][][link_type]">
<option value="frontpage">Store Frontpage</option>
<option selected="selected" value="collection">Collection</option>
<option value="product">Product</option>
<option value="catalog">All Products</option>
<option value="page">Page</option>
<option value="blog">Blog</option>
<option value="search">Search page</option>
<option value="http">Web Address</option>
</select>

我尝试过:

$('#link_list_links__link_type option:selected').map(function () {

return $(this).val();
});

它只返回第一个selected="selected"选项,而不是其余的迭代。

如何使用selected="selected"返回页面上的所有选项? 我究竟做错了什么?

1 个答案:

答案 0 :(得分:1)

问题是你使用的id,元素的ID必须是唯一的,所以当你使用id-selector时它只会返回带有所述id的第一个元素。这意味着#link_list_links__link_type只选择1个选择元素,因此您只获得一个值。

  

元素的唯一标识符。
不得有多个   文档中具有相同id值的元素。

这里的一个解决方案是使用类来分组相似的元素,所以

<select bind-event-change="disableHiddenInputs()" bind="appliesToResource6"         name="link_list[links][][link_type]" class="link_list_links__link_type">

然后

var array = $('.link_list_links__link_type option:selected').map(function () {
return $(this).val();
}).get();