Answers:
$.map
更加优雅,错误更少(见下文)。
$('#id option').map((index, option) => option.value)
:请注意,与“普通” JS map
函数((item, index) =>
)相比,回调签名是如何反转的
我不了解jQuery,但我确实知道,如果您获得select元素,它就会包含一个“选项”对象。
var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
$.map
这可能是最有效的方法。
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
$('#selectBox option:selected')
如果只希望选择更改选项,则可以添加更改选项。
第一行选择所有复选框,并将其jQuery元素放入变量中。然后,我们使用.map
jQuery函数将函数应用于该变量的每个元素;我们要做的就是返回每个元素的值,因为这就是我们关心的全部。因为我们将它们返回到map函数内部,所以它实际上按照请求构建了一个值数组。
$('#selectBox').val()
将返回选择值的数组。
一些答案使用each
,但是map
恕我直言,这是更好的选择:
$("select#example option").map(function() {return $(this).val();}).get();
map
jQuery 中至少有两个函数。Thomas Petersen的答案使用“ Utilities / jQuery.map”;该答案使用“遍历/映射”(因此使用了更简洁的代码)。
这取决于您要使用这些值。假设您想从函数中返回值,map
则可能是更好的选择。但是,如果您要直接使用这些值,则可能需要each
。
get()
返回的对象使用基本数组非常常见。” - api.jquery.com/map
text()
代替val()
。谢谢 !(我让您超过了1000 ;->
)
$('select#id').find('option').each(function() {
alert($(this).val());
});
$("#id option").each(function()
{
$(this).prop('selected', true);
});
虽然,正确的方法是设置元素的DOM属性,如下所示:
$("#id option").each(function(){
$(this).attr('selected', true);
});
这将为#myselectbox
您提供一个很好的干净数组的选项值:
// First, get the elements into a list
var domelts = $('#myselectbox option');
// Next, translate that into an array of just the values
var values = $.map(domelts, function(elt, i) { return $(elt).val();});
$.map(domelts, elt=> $(elt).val())
最有效的方法是使用 $.map()
例:
var values = $.map($('#selectBox option'), function(ele) {
return ele.value;
});
您可以为此使用以下代码:
var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
assignedRoleId.push(this.value);
});
对于多选选项:
$('#test').val()
返回所选值的列表。
$('#test option').length
返回选项总数(选中和未选中)
这是带有jQuery的简单脚本:
var items = $("#IDSELECT > option").map(function() {
var opt = {};
opt[$(this).val()] = $(this).text();
return opt;
}).get();
var selectvalues = [];
for(var i = 0; i < items.length; i++) {
for(key in items[i]) {
var id = key;
var text = items[i][key];
item = {}
item ["id"] = id;
item ["text"] = text;
selectvalues.push(item);
}
}
console.log(selectvalues);
copy(selectvalues);
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
这是jquery中的一个简单示例,用于获取所选项目的所有值,文本或值,或所选项目的文本
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
printOptionValues = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
}
printOptionTexts = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).text());
})
}
printSelectedItemText = () => {
console.log($('#nCS1 option:selected').text());
}
printSelectedItemValue = () => {
console.log($('#nCS1 option:selected').val());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select size="1" id="nCS1" name="nCS1" class="form-control" >
<option value="22">Australia</option>
<option value="23">Brunei</option>
<option value="33">Cambodia</option>
<option value="32">Canada</option>
<option value="27">Dubai</option>
<option value="28">Indonesia</option>
<option value="25">Malaysia</option>
</select>
<br/>
<input type='button' onclick='printOptionValues()' value='print option values' />
<br/>
<input type='button' onclick='printOptionTexts()' value='print option texts' />
<br/>
<input type='button' onclick='printSelectedItemText()' value='print selected option text'/>
<br/>
<input type='button' onclick='printSelectedItemValue()' value='print selected option value' />
$("input[type=checkbox][checked]").serializeArray();
要么:
$(".some_class[type=checkbox][checked]").serializeArray();
要查看结果:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
捷径
$(() => {
$('#myselect option').each((index, data) => {
console.log(data.attributes.value.value)
})})
要么
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;}