我想在html中使用select multiple tab,如
<select name="foo" multiple>
<option value="all">option1</option>
<option value="all">option2</option>
<option value="all">option3</option>
</select>
如何从多个选择标签中获取javascript中的数据
我试过
var foo = [];
$('#foo:selected').each(
function(i,selected) {
foo[i] = $(selected).text();
}
);
但没有运气,它不起作用。它显示foo.length == 0
这样做的正确方法是什么?谢谢!
答案 0 :(得分:0)
$('#foo:selected')
应该是
$('#foo option:selected')
所选属性为property of the options inside select
而非select element.
其次,您没有id="foo"
$('[name=foo] option:selected') // for this case
答案 1 :(得分:0)
$('#foo:selected')
这会尝试查找已选中的#foo
个实例。但那是select
元素本身,而不是其中的选项。尝试使用选项:
$('#foo option:selected')
更新:看起来选择器的第一部分也是错误的。您实际上没有标识为foo
的元素,因此#foo
将找不到任何内容。您所拥有的是select
元素,其中名称 foo
。所以就这样:
$('select[name="foo"] option:selected')
答案 2 :(得分:0)
请改为尝试:
var foo = [];
$("[name='foo']").change(function () {
$("[name='foo'] option:selected").each(function (i, selected) {
foo[i] = $(this).text();
});
})
.trigger('change');