jquery next()和find()从元素中删除类对我来说不起作用

时间:2015-07-03 08:56:57

标签: jquery html

我目前遇到了问题:

我的html中有不同的元素。所有除了第一个有一个名为“非活动”的类,我希望它们单击(在每个单元格上)以激活(删除“非活动”属性)。

点击第一个,将激活第二个。单击第二个,将激活第三个。等等。

这是我的HTML。

<div class="around">
    <div class="row">
        <div class="cell">text 1</div>
    </div>
    <div class="row inactive">
        <div class="cell">text 2</div>
    </div>
    <div class="row inactive">
        <div class="cell">text 3</div>
    </div>
</div>

这是我的jquery(在stackoverflow上找到)

$( document ).ready(function() {
    $( ".cell" ).click(function() {
        $(this).closest('.around').next().find('.inactive').removeClass('inactive');
    });
});

这样做......没什么。

我也尝试过:

$(this).closest('.around').find('.inactive').removeClass('inactive');
    });

但是这将从所有元素中删除“非活动”类

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

使用parent()功能:

$( document ).ready(function() {
    $( ".cell" ).click(function() {
        // Take the parent .row element of the selected cell
        // and remove the class .inactive
        $(this).parent('.row').removeClass('inactive');
    });
});

答案 1 :(得分:5)

如果要从clicked元素的parent中删除类,则需要使用.parent()遍历父元素:

$( ".cell" ).click(function() {
  $(this).parent().removeClass('inactive');
});

如果要从点击的父级的下一个兄弟元素中删除该类,请使用.parent().next()

$( ".cell" ).click(function() {
  $(this).parent().next().removeClass('inactive');
});