尝试在页面上获取具有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"
返回页面上的所有选项?
我究竟做错了什么?
答案 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();