如何通过传递其ID来获取select jQuery的所有选项?
我只想获得他们的价值观,而不是文本.
使用:
$("#id option").each(function() { // Add $(this).val() to your list });
.each()| jQuery API文档
我不知道jQuery,但我知道如果你得到select元素,它包含一个'options'对象.
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函数内部,所以它实际上是按照请求构建了一个值数组.
一些答案使用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()); });
$("#id option").each(function() { $(this).prop('selected', true); });
虽然,CORRECT方法是设置元素的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();});
您可以通过复选框的名称获取所有"选定值",并将它们显示在以","分隔的标记中.
一个很好的方法是使用jQuery的$ .map():
var selected_val = $.map($("input[name='d_name']:checked"), function(a) { return a.value; }).join(','); alert(selected_val);
工作实例
最有效的方法是使用 $.map()
例:
var values = $.map($('#selectBox option'), function(ele) { return ele.value; });