我正在使用多选集合在一起的选项。
<select title="Fruits" multiple="multiple" id="fruits" name="fruits[]">
<option selected="selected" label="All" value="">All</option>
<optgroup label="" class="fruit">
<option label="apple" value="1">Apple</option>
<option label="pear" value="2">Pear</option>
<option label="orange" value="3">Orange</option>
</optgroup>
<optgroup label="" class="berries">
<option label="strawberry" value="4">Strawberry</option>
<option label="raspberry" value="5">Raspberry</option>
<option label="blueberry" value="6">Blueberry</option>
</optgroup>
</select>
我尝试$(this).find("option:selected").parent().attr("label")
只返回第一个选定选项的optgroup,这意味着如果选择了Strawberry和Pear,则两个帐户都会返回optgroup'.fruit'。
使用jQuery,如何获得每个选定选项的optgroup?
答案 0 :(得分:16)
试试这个
$(this).find("option:selected").each(function(){
$(this).parent().attr("label");
});
答案 1 :(得分:4)
这可能有点晚了,但我刚刚完成了这个问题,这似乎是我找到的最优雅的解决方案:
$("#fruits option").filter(":selected").parent("optgroup").attr("label");
以下是针对此特定示例修改的小提琴(使用class属性而不是label属性):http://jsfiddle.net/pNjsj/
希望能帮助某人:)
答案 2 :(得分:3)
尝试使用.each()
$(this).find("option:selected").each(function(){
alert($(this).parent().attr("label"));
});