JQUERY类删除问题

时间:2018-01-18 10:03:28

标签: jquery

我正在尝试在点击时将课程( .sidebarActive )添加到 .sidebarButton ,然后从所有其他按钮中移除该课程相同( .sidebarButton )类。将活动类添加到 .sidebarButton 的代码部分可以正常工作,但是当单击其他按钮时,它不会删除活动类。有什么建议。?我的代码逻辑错了吗?谢谢你的帮助。

$(".sidebarButton").click(function() {
  hideActive();
  $(this).addClass('sidebarActive');
});

function hideActive() {
    var sidebars = document.querySelectorAll(".sidebarButton");
    for (var i = 0, l = sidebars.length; i < l; i++) {
        sidebars[i].removeClass(".sidebarActive");
    }
}

2 个答案:

答案 0 :(得分:5)

您只需点击每个.sidebarActive删除.sidebarButton,然后在点击的内容中添加$(".sidebarButton").click(function() { $(".sidebarButton").removeClass('sidebarActive'); $(this).addClass('sidebarActive'); });

$(".sidebarButton").click(function() {
  $(".sidebarButton").removeClass('sidebarActive');
  $(this).addClass('sidebarActive');
});

.sidebarButton{
  cursor: pointer;
}

.sidebarActive{
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="sidebarButton">Test 1</p>
<p class="sidebarButton">Test 2</p>
<p class="sidebarButton">Test 3</p>
<p class="sidebarButton">Test 4</p>
{{1}}

答案 1 :(得分:1)

在hideActive函数中sidebars[i].removeClass(".sidebarActive");不起作用,因为sidebars[i]不是Jquery对象。

将其更改为:

sidebars[i].classList.remove("sidebarActive");

或者做Zenoo为完整的Jquery解决方案发布的内容