我如何通过jQuery传递它的ID来获得一个选择的所有选项?
我只是想获取它们的值,而不是文本。
我如何通过jQuery传递它的ID来获得一个选择的所有选项?
我只是想获取它们的值,而不是文本。
当前回答
捷径
$(() => {
$('#myselect option').each((index, data) => {
console.log(data.attributes.value.value)
})})
or
export function GetSelectValues(id) {
const mData = document.getElementById(id);
let arry = [];
for (let index = 0; index < mData.children.length; index++) {
arry.push(mData.children[index].value);
}
return arry;}
其他回答
对于多选选项:
$('#test').val()返回所选值列表。 $(" #测试选项”)。Length返回选项总数(包括选中的和未选中的)
美元。地图可能是最有效的方法。
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
如果你只想要那些被选中的选项,你可以在$('#selectBox option:selected')中添加更改选项。
第一行选择所有复选框,并将其jQuery元素放入变量中。然后,我们使用jQuery的.map函数对该变量的每个元素应用一个函数;我们所做的只是返回每个元素的值,因为这是我们所关心的。因为我们是在map函数内部返回它们,它实际上会根据请求构建一个值的数组。
$('select#id').find('option').each(function() {
alert($(this).val());
});
如果您正在寻找一些选定文本的所有选项,那么下面的代码将工作。
$('#test').find("select option:contains('B')").filter(":selected");
$("#id option").each(function()
{
$(this).prop('selected', true);
});
不过,正确的方法是设置元素的DOM属性,如下所示:
$("#id option").each(function(){
$(this).attr('selected', true);
});