如何通过传递其ID来获取select jQuery的所有选项?
我只是想要获得他们的 Value 观,而不是文本 .
使用:
$("#id option").each(function() { // Add $(this).val() to your list });
.each() | jQuery API Documentation
我不知道jQuery,但我知道如果你得到select元素,它包含一个'options'对象 .
var myOpts = document.getElementById('yourselect').options; alert(myOpts[0].value) //=> Value of the first option
$("#id option").each(function() { $(this).prop('selected', true); });
虽然, CORRECT 方式是设置元素的DOM属性,如下所示:
$("#id option").each(function(){ $(this).attr('selected', true); });
您可以通过复选框的名称获取所有“选定值”,并将它们显示在以“,”分隔的标记中 .
一个很好的方法是使用jQuery的$ .map():
var selected_val = $.map($("input[name='d_name']:checked"), function(a) { return a.value; }).join(','); alert(selected_val);
$('select#id').find('option').each(function() { alert($(this).val()); });
如果您正在查找包含所选文本的所有选项,则以下代码将起作用 .
$('#test').find("select option:contains('B')").filter(":selected");
您可以使用以下代码:
var assignedRoleId = new Array(); $('#RolesListAssigned option').each(function(){ assignedRoleId.push(this.value); });
这是一个简单的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>
$("input[type=checkbox][checked]").serializeArray();
要么:
$(".some_class[type=checkbox][checked]").serializeArray();
要查看结果:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
这会将 #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();});
对于多选选项:
$('#test').val() 返回所选值的列表 . $('#test option').length 返回选项总数(选中和未选中)
$('#test').val()
$('#test option').length
$.map 可能是最有效的方法 .
$.map
var options = $('#selectBox option'); var values = $.map(options ,function(option) { return option.value; });
如果只需要选择的选项,可以将更改选项添加到 $('#selectBox option:selected') .
$('#selectBox option:selected')
第一行选择所有复选框并将其jQuery元素放入变量中 . 然后我们使用jQuery的 .map 函数将函数应用于该变量的每个元素;我们所做的就是返回每个元素的值,因为这就是我们所关心的 . 因为我们将它们返回到map函数内部,所以它实际上是按照请求构建了一个值数组 .
.map
一些答案使用 each ,但是 map 在这里是更好的选择恕我直言:
each
map
$("select#example option").map(function() {return $(this).val();}).get();
jQuery中有(至少)两个 map 函数 . Thomas Petersen的回答使用"Utilities/jQuery.map";这个答案使用"Traversing/map"(因此代码更清晰) .
这取决于你将如何处理这些值 . 如果您想要从函数返回值, map 可能是更好的选择 . 但是,如果您要直接使用这些值,您可能需要 each .
Working example
最有效的方法是使用 $.map()
$.map()
Example:
var values = $.map($('#selectBox option'), function(ele) { return ele.value; });
14 回答
使用:
.each() | jQuery API Documentation
我不知道jQuery,但我知道如果你得到select元素,它包含一个'options'对象 .
虽然, CORRECT 方式是设置元素的DOM属性,如下所示:
您可以通过复选框的名称获取所有“选定值”,并将它们显示在以“,”分隔的标记中 .
一个很好的方法是使用jQuery的$ .map():
如果您正在查找包含所选文本的所有选项,则以下代码将起作用 .
您可以使用以下代码:
这是一个简单的jQuery脚本:
要么:
要查看结果:
这会将 #myselectbox 的选项值放入一个漂亮的干净数组中:
对于多选选项:
$('#test').val()
返回所选值的列表 .$('#test option').length
返回选项总数(选中和未选中)$.map
可能是最有效的方法 .如果只需要选择的选项,可以将更改选项添加到
$('#selectBox option:selected')
.第一行选择所有复选框并将其jQuery元素放入变量中 . 然后我们使用jQuery的
.map
函数将函数应用于该变量的每个元素;我们所做的就是返回每个元素的值,因为这就是我们所关心的 . 因为我们将它们返回到map函数内部,所以它实际上是按照请求构建了一个值数组 .一些答案使用
each
,但是map
在这里是更好的选择恕我直言:jQuery中有(至少)两个
map
函数 . Thomas Petersen的回答使用"Utilities/jQuery.map";这个答案使用"Traversing/map"(因此代码更清晰) .这取决于你将如何处理这些值 . 如果您想要从函数返回值,
map
可能是更好的选择 . 但是,如果您要直接使用这些值,您可能需要each
.Working example
最有效的方法是使用
$.map()
Example: