首页 > 解决方案 > 将类添加到特定的兄弟元素,而不是页面上出现的每个兄弟元素

问题描述

我有这个函数,可以将一个类添加到主父元素中的兄弟元素。

$(document).on('click', function() {
    if ($('#Correct').css('display') == 'block'){
            $('div[data-answer="1"]').addClass('test-class'); 
        } else {
    }
});

当它执行时,它将一个类添加到具有此属性的任何 div 中,因为相同的代码在页面上出现了多次:

[data-answer="1"]

我想知道是否可以仅将类添加到具有该数据属性的同级 div 中,而不向页面上的所有这些类添加类?如果这有任何意义吗?我是 javascript 新手,所以请多多包涵。

标签: javascriptjquery

解决方案


使用 .find() 和 .first() 仅获取第一个匹配元素。

$(document).on('click', function() {
if ($('#Correct').css('display') == 'block'){
        $('#Correct').find('div[data-answer="1"]').first().addClass('test-class'); 
    } else {
}
});

推荐阅读