如何根据所选的box_B
选项获取box_A
optgroup的标签名称?
我使用以下函数尝试提醒box_A
父标签,但无法获取,如果我更改为var label = $(e).attr('value');
,则选项值显示。
function showLabel(e){
if($(e).attr('checked')=='checked'){
var label = $(e).parent().attr('label');
alert(label);
}
}
选择框:
<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>
调用函数:
$(document).ready(function() {
$("#box_A").multiSelect({}, showLabel);
}
感谢。
答案 0 :(得分:0)
假设调用showLabel
并在单击选项时传递jQuery事件对象,则可以使用:
function showLabel(e){
var $target = $(e.target);
if($target.is(':selected')){
var label = $target.closest('optgroup').attr('label');
alert(label);
}
}
修改强>
在看了你发布的插件后,看起来我上面的假设是错误的。 showLabel
没有被传递给jQuery事件,而是传递了被点击项目的jQuery对象,这也是一个复选框,而不是一个选项。请尝试使用此代码:
function showLabel($target){
if($target.is(':checked')){
var label = $target.closest('optgroup').attr('label');
alert(label);
}
}