将类添加到特定的同级元素,而不是页面上显示的每个同级元素

时间:2018-10-31 13:47:46

标签: javascript jquery

我有这个函数,可以在主父对象的同级元素中添加一个类。

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

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

[data-answer="1"]

我想知道是否可以仅将类添加到具有该data属性的同级div中,而无需将所有类都添加到页面上?如果有任何意义吗?我是javascript新手,请耐心等待。

2 个答案:

答案 0 :(得分:1)

使用jquery的siblings()函数

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

答案 1 :(得分:1)

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

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