如果accordion组ID相同-jQuery

如果accordion组ID相同-jQuery,jquery,Jquery,我正在尝试获取accordion组名并运行一个条件,如果组名相同,但条件不起作用,我在这里做错了什么,请有人检查并提出建议: <div class="ab-Accordion ab-Accordion--block"> <button id="test" type="button" class="Accordion-label js-Accordion" data-accordion-group="contact" role="tab" data-event-type=

我正在尝试获取accordion组名并运行一个条件,如果组名相同,但条件不起作用,我在这里做错了什么,请有人检查并提出建议:

<div class="ab-Accordion ab-Accordion--block">
    <button id="test" type="button" class="Accordion-label js-Accordion" data-accordion-group="contact" role="tab" data-event-type="Accordion" data-event-details="Accordion" aria-selected="false">Accordion Title</button>
</div>

$(".ab-Accordion").bind('click',function(e){
    var accorgrpName = $(this).children().attr('data-accordion-group');
    //the above line return the group name in console correctly
    if ($(this).children().attr('data-accordion-group') == accorgrpName){
        console.log("this is same group - do something");
    }
});

手风琴标题
$(“.ab Accordion”).bind('click',函数(e){
var accorgrpName=$(this.children().attr('data-accordion-group');
//上面的行正确返回console中的组名
if($(this).children().attr('data-accordion-group')==acorgrpname){
log(“这是同一组-做点什么”);
}
});
此代码在条件下未按预期工作


TIA

您需要存储在变量中,并且该变量应该在函数之外声明

在下面的示例中,我们有3个按钮,前两个按钮具有相同的组,最后一个按钮具有不同的组名

情景1:

  • 点击第一个按钮
  • 现在单击第二个按钮(您应该看到 '这是同一组-做点什么')
情景2:

  • 点击第一个按钮
  • 现在单击第三个按钮(您应该看到 "不同组别")
var accorgrpName='';
$(“.ab Accordion”).bind('click',函数(e){
如果(AccorgName!=''){
//上面的行正确返回console中的组名
if($(this).children().attr('data-accordion-group')==acorgrpname){
log(“这是同一组-做点什么”);
}否则{
console.log(“不同的组”);
}
}否则{
console.log('这是第一次单击..现在单击其他按钮..')
}
accorgrpName=$(this.children().attr('data-accordion-group');
});

手风琴标题
同组手风琴
不同组别的手风琴

相关的DOM看起来像什么,您在控制台中得到什么输出?
$(this).children().attr('data-accordion-group')
AccorgName
的值是什么?它们是
null
还是
undefined
。为什么不先打印这两个值,然后再比较它们,并理解为什么会出错?否则,只需将
绑定到您的“单击函数”中,以确保您知道什么是此@I已更新代码。问题是您正在比较if语句中的相同值
AccorgName
已设置为等于
$(this).children().attr('data-accordion-group')
,然后比较两个值是否相等