如何获得使用jQueryselect的所有选项?

如何通过传递其ID来获得通过jQueryselect的所有选项?

我只是希望得到他们的价值,而不是文字。

使用:

$("#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')选项,您可以将更改选项添加到$('#selectBox option:selected')

第一行select所有的checkbox,并把他们的jQuery元素放入一个variables中。 然后,我们使用jQuery的.map函数将函数应用于该variables的每个元素; 我们所做的只是返回每个元素的价值,就像我们所关心的那样。 因为我们将它们返回到map函数中,所以它实际上按照请求构build了一个值的数组。

一些答案使用each ,但map是一个更好的select在这里恕我直言:

 $("select#example option").map(function() {return $(this).val();}).get(); 

jQuery中至less有两个map函数。 Thomas Petersen的答案使用“Utilities / jQuery.map”; 这个答案使用“遍历/地图”(因此有一点清洁的代码)。

这取决于你将要做的价值观。 如果你说,想从一个函数返回值, map可能是更好的select。 但是,如果您要直接使用这些值,则可能需要each值。

 $('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); }); 

您可以通过checkbox的名称取所有“选定的值”,并用“,”分隔。

一个很好的方法是使用jQuery的$ .map():

 var selected_val = $.map($("input[name='d_name']:checked"), function(a) { return a.value; }).join(','); alert(selected_val); 

这将把#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()

例:

 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返回选项总数(包括选中和未选中)

 $("input[type=checkbox][checked]").serializeArray(); 

要么:

 $(".some_class[type=checkbox][checked]").serializeArray(); 

要查看结果:

 alert($("input[type=checkbox][checked]").serializeArray().toSource()); 

如果你正在寻找一些选定的文本的所有选项,那么下面的代码将工作。

 $('#test').find("select option:contains('B')").filter(":selected");