获取多选中所有选项的值

时间:2013-07-01 14:15:18

标签: jquery

我有一个多选项,我需要使用jQuery获取所有选项的value属性 - 而不仅仅是选定的选项 -

我试过

$('#multiSelectAssignedGoTosForCourse').each(function (index) {
    console.log('index: ' + index + ', value: ' + $(this).val())
});

但这不起作用(我认为它不会,但我不知道该尝试什么)。

理想情况下,我需要构建一个以逗号分隔的值列表,这些值只是数字(选项的数据库ID)。

4 个答案:

答案 0 :(得分:4)

您正在使用该ID循环遍历每个对象,这可能就是那个ID。

相反,您需要遍历其下方的option标记:

$('#multiSelectAssignedGoTosForCourse option').each(function(idx) {
    // etc.
});

答案 1 :(得分:3)

var values = $('multiSelectAssignedGoTosForCourse option').map(function () {
    return this.value;
}).get();

<强> Demo

这将为您提供所有值的数组。

或者

使用attr()回调:

var values = [];
$('#multiSelectAssignedGoTosForCourse option').attr('value', function() {
   values.push(this.value);  
});

<强> DEMO

答案 2 :(得分:1)

您目前仅循环遍历一个#multiSelectAssignedGoTosForCourse元素。您必须使用#multiSelectAssignedGoTosForCourse option作为选择器,或在循环前使用.children() method

$('#multiSelectAssignedGoTosForCourse').children().each(function(i) {
    console.log("index: "+i, "value: "+this.value);
});
  

我需要构建一个以逗号分隔的值列表

然后使用以下内容:

var numbers = $.map($('#multiSelectAssignedGoTosForCourse').children(), function() {
    return this.value;
}).join(",");

答案 3 :(得分:1)

以下是您可以做的事情:

$(function(){
 var arr = [];
 $('#multiSelectAssignedGoTosForCourse').children().each(function(){
     arr.push($(this).val());
 });
});

这是一个工作小提琴:http://jsfiddle.net/5XhL2/

相关问题