如何通过传递其 ID 来通过 jQuery 获取选择的所有选项?
我只想得到他们的value观,而不是文本。
如何通过传递其 ID 来通过 jQuery 获取选择的所有选项?
我只想得到他们的value观,而不是文本。
我不知道 jQuery,但我知道如果你得到 select 元素,它包含一个 'options' 对象。
var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
一个12岁的答案。让我们稍微现代化一下:
console.log( [...document.querySelector("#demo").options].map( opt => opt.value ) );
<select id="demo">
<option value="Belgium">Belgium</option>
<option value="Botswana">Botswana</option>
<option value="Burkina Faso">Burkina Faso</option>
<option value="Burundi">Burundi</option>
<option value="China">China</option>
<option value="France">France</option>
<option value="Germany">Germany</option>
<option value="India">India</option>
<option value="Japan">Japan</option>
<option value="Malaysia">Malaysia</option>
<option value="Mali">Mali</option>
<option value="Namibia">Namibia</option>
<option value="Netherlands">Netherlands</option>
<option value="North Korea">North Korea</option>
<option value="South Korea">South Korea</option>
<option value="Spain">Spain</option>
<option value="Sweden">Sweden</option>
<option value="Uzbekistan">Uzbekistan</option>
<option value="Zimbabwe">Zimbabwe</option>
</select>
$.map
可能是最有效的方法来做到这一点。
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
$('#selectBox option:selected')
如果您只想要被选中的选项,您可以添加更改选项。
第一行选择所有复选框并将它们的 jQuery 元素放入一个变量中。然后我们使用.map
jQuery的函数将函数应用于该变量的每个元素;我们所做的就是返回每个元素的值,因为这是我们所关心的。因为我们在 map 函数内部返回它们,它实际上按照请求构建了一个值数组。
一些答案使用each
,但map
在这里是更好的选择,恕我直言:
$("select#example option").map(function() {return $(this).val();}).get();
map
jQuery 中有(至少)两个函数。Thomas Petersen 的回答使用“Utilities/jQuery.map”;这个答案使用“遍历/地图”(因此代码更简洁)。
这取决于您将如何处理这些值。如果您想从函数中返回值,那map
可能是更好的选择。但是,如果您要直接使用这些值,您可能需要each
.
$('select#id').find('option').each(function() {
alert($(this).val());
});