假设我有一个下拉菜单:
<select id="color">
<option value="white" selected="selected">White</option>
<option value="black">Black</option>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="green">Transparent</option>
</select>
我知道在jQuery中我可以选择带有选项索引的选项:
$('#color option:eq(2)') //get 'red'
但是,有没有办法一次获得多个选项?我尝试了以下代码:
$('#color option:eq(2, 3)') //Try to get 'Red' and 'Green'
和
$('#color option:eq([2, 3])') //Try to get 'Red' and 'Green'
但是没有人工作,如何一次解决多种选择?
答案 0 :(得分:2)
如果您想获得该集合的子集,可以使用.slice()
。
$("#color option").slice(2,3)
如果您想获得不同的元素,可以执行以下操作:
$("#color option").filter(":eq(2), :eq(4)");
jsfiddle上的代码示例。
答案 1 :(得分:0)
根据您的other question,您可能需要考虑将类添加到特定选项中。这不仅可以让你抓住多个,还可以提供一些上下文:
<select id="color">
<option value="white" selected="selected" class="past">White</option>
<option value="black" class="past">Black</option>
<option value="red" class="future">Red</option>
<option value="green" class="future">Green</option>
<option value="green" class="mixed">Transparent</option>
</select>
然后,当你编写逻辑时,你可以做类似
的事情$('option.future, option.multi').hide();
$('option.past').show();
答案 2 :(得分:0)
一旦选择了元素,就可以像对待任何其他数组一样对待它:
var opts = $('#color option')
var output = ""
for(var x=0;x<opts.length;x++) {
output+=" " + opts[x].value
}
alert(output)