我有一个select元素,用户可以在其中添加和删除选项。当用户完成后,他们将点击保存,但我无法弄清楚如何从选择中获取所有选项。我发现JQuery可以获得所有选择,但我只需要所有这些。我试过这个:
var str = "";
$("#wordList").each(function () {
str += $(this).text() + ",";
});
alert(str);
但它只是将所有选项连接到以逗号结尾的一个长字符串。
答案 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);
});