我有一个多选项,我需要使用jQuery获取所有选项的value属性 - 而不仅仅是选定的选项 -
我试过
$('#multiSelectAssignedGoTosForCourse').each(function (index) {
console.log('index: ' + index + ', value: ' + $(this).val())
});
但这不起作用(我认为它不会,但我不知道该尝试什么)。
理想情况下,我需要构建一个以逗号分隔的值列表,这些值只是数字(选项的数据库ID)。
答案 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/