2

我有一个选择元素,用户可以在其中添加和删除选项。用户完成后,他们将单击保存,但我无法弄清楚如何从选择中获取所有选项。我发现 JQuery 可以获得所有选择,但我只需要所有这些。我试过这个:

var str = "";    
$("#wordList").each(function () {    
    str += $(this).text() + ",";    
});    
alert(str);

但它只是将所有选项连接到一个以逗号结尾的长字符串。

4

3 回答 3

7

只需将选项映射到它们的值数组:

var options = $("select option").map(function () {
    return $(this).text();
}).get();

此时你有一个数组。如果您希望它是 CSV,请使用以下join方法:

options.join(",");

最终结果是一个数组["One", "Two"]或一个字符串"one,two"

于 2013-04-09T01:42:32.877 回答
5

该代码完全按照包装盒上的说明进行操作。通常我希望你会习惯于$("#wordList option")获得这些选项。我猜如果选项是“这个”、“那个”和“另一个”,那么你得到了ThisThatThe Other,,这就是该代码将执行的操作(即 #wordList 元素内的所有文本,它基本上包括里面的所有选项那个元素。你正在执行的数组.each()有一个元素:“ThisThatThe Other”,你迭代它一次并添加一个逗号)。

您想连接 #wordList 中每个 OPTIONS 的文本(我认为),所以请尝试

var str = "";    
$("#wordList option").each(function () {    
    str += $(this).text() + ",";    
});    
alert(str);

给你一个所有单词的字符串(比如This,That,The Other,)如果你想要一个数组,而不是这样做:

var arr = [];    
$("#wordList option").each(function () {    
    arr.push($(this).text());    
});    
alert(arr.join(", "));
于 2013-04-09T01:46:38.647 回答
3

“无论是在数组还是 csv 中获取它都没有关系,我只需要从 select 元素中获取所有选项元素”

$('#your_select_id').prop('options')将为您返回所有选项的集合。

然后你可以用它做任何你想做的事情......这是一个例子,我们在一个数组中收集所有选项值。

var values = [];

$.each($('#your_select_id').prop('options'), function () {
    values.push(this.value);   
});
于 2013-04-09T01:44:21.513 回答