获取select元素中的所有选项

时间:2013-04-09 01:36:06

标签: jquery html html-select

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

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

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

3 个答案:

答案 0 :(得分:7)

只需将选项映射到其值数组:

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

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

options.join(",");

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

答案 1 :(得分:5)

该代码完全按照它在框中所说的完成。通常我希望你会使用$("#wordList option")来获取选项。我猜测如果选项是“This”,“That”和“The other”那么你得到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(", "));

答案 2 :(得分:3)

“如果我在数组或csv中获取它并不重要,我只需要从select元素中获取所有选项元素”

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

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

var values = [];

$.each($('#your_select_id').prop('options'), function () {
    values.push(this.value);   
});
相关问题