首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery optgroup标签及其子类

Jquery optgroup标签及其子类
EN

Stack Overflow用户
提问于 2013-03-25 03:22:07
回答 1查看 2.3K关注 0票数 0

如何根据所选的box_B选项获得box_A optgroup的标签名?

我使用以下函数试图提醒box_A父标签,但无法得到它,如果我更改为var label = $(e).attr('value');,则选项值将显示。

代码语言:javascript
复制
function showLabel(e){ 
    if($(e).attr('checked')=='checked'){
         var label = $(e).parent().attr('label');
         alert(label);
    }
}

复选框:

代码语言:javascript
复制
<select id="box_A" multiple="multiple">
    <optgroup label="Asia: Japan">
        <option value="1 - Toyota">1 - Toyota</option>
        <option value="2 - Honda">2 - Honda</option>
    </optgroup>
    <optgroup label="Europe: German">
        <option value="3 - Mercedes">3 - Mercedes</option>
    </optgroup>
</select>

<select id="box_B" multiple="multiple">
    <optgroup label="1 - Toyota">
        <option value="1A - Camry">1A - Camry</option>
        <option value="1B - Yaris">1B - Yaris</option>
    </optgroup>
    <optgroup label="2 - Honda">
        <option value="2A - Civic">2A - Civic</option>
    </optgroup>
    <optgroup label="3 - Mercedes">
        <option value="3A - SL320">3A - SL320</option>
    </optgroup>

</select>

调用该函数:

代码语言:javascript
复制
$(document).ready(function() {

    $("#box_A").multiSelect({}, showLabel);

}

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-03-25 03:47:00

假设在单击选项时调用showLabel并传递jQuery事件对象,则可以使用以下方法:

代码语言:javascript
复制
function showLabel(e){ 
    var $target = $(e.target);
    if($target.is(':selected')){
         var label = $target.closest('optgroup').attr('label');
         alert(label);
    }
}

编辑:

在查看了你发布的插件后,我的上述假设似乎是错误的。showLabel不是传递一个jQuery事件,而是为单击的项传递jQuery对象,这也是一个复选框,而不是选项。试着用这个代替:

代码语言:javascript
复制
function showLabel($target){ 
    if($target.is(':checked')){
         var label = $target.closest('optgroup').attr('label');
         alert(label);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15607090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档