使用JQuery从select multiple选项卡中获取数据

时间:2013-07-09 22:14:18

标签: javascript jquery html html-select

我想在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

这样做的正确方法是什么?谢谢!

3 个答案:

答案 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');