如何在jQuery中获得多选的optgroup?

时间:2010-12-08 12:05:37

标签: jquery multi-select optgroup

我正在使用多选集合在一起的选项。

<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?

3 个答案:

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