我有一个选择元素,用户可以在其中添加和删除选项。用户完成后,他们将单击保存,但我无法弄清楚如何从选择中获取所有选项。我发现 JQuery 可以获得所有选择,但我只需要所有这些。我试过这个:
var str = "";
$("#wordList").each(function () {
str += $(this).text() + ",";
});
alert(str);
但它只是将所有选项连接到一个以逗号结尾的长字符串。
我有一个选择元素,用户可以在其中添加和删除选项。用户完成后,他们将单击保存,但我无法弄清楚如何从选择中获取所有选项。我发现 JQuery 可以获得所有选择,但我只需要所有这些。我试过这个:
var str = "";
$("#wordList").each(function () {
str += $(this).text() + ",";
});
alert(str);
但它只是将所有选项连接到一个以逗号结尾的长字符串。
只需将选项映射到它们的值数组:
var options = $("select option").map(function () {
return $(this).text();
}).get();
此时你有一个数组。如果您希望它是 CSV,请使用以下join
方法:
options.join(",");
最终结果是一个数组["One", "Two"]
或一个字符串"one,two"
。
该代码完全按照包装盒上的说明进行操作。通常我希望你会习惯于$("#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(", "));
“无论是在数组还是 csv 中获取它都没有关系,我只需要从 select 元素中获取所有选项元素”
$('#your_select_id').prop('options')
将为您返回所有选项的集合。
然后你可以用它做任何你想做的事情......这是一个例子,我们在一个数组中收集所有选项值。
var values = [];
$.each($('#your_select_id').prop('options'), function () {
values.push(this.value);
});