Javascript 单击添加类和删除类时的Jquery问题

Javascript 单击添加类和删除类时的Jquery问题,javascript,jquery,class,if-statement,Javascript,Jquery,Class,If Statement,第一次在这里发布。我是jquery的初学者,遇到了一些灰色地带。希望我能在这里找到我的答案,并从中学习:) 我有一个10个不同的分区,都是同一个级别。每次单击div时,它都必须添加另一个类(在本例中为css中的背景色)。为此,我有: $(document).ready(function() { $(".menucardmenu").click(function(){ if($(this).hasClass("menucardmenu")) { $(t

第一次在这里发布。我是jquery的初学者,遇到了一些灰色地带。希望我能在这里找到我的答案,并从中学习:)

我有一个10个不同的分区,都是同一个级别。每次单击div时,它都必须添加另一个类(在本例中为css中的背景色)。为此,我有:

$(document).ready(function() {
$(".menucardmenu").click(function(){
        if($(this).hasClass("menucardmenu")) {
               $(this).addClass("backgroundmenucard");
    }
    else {
        alert ("condition false");
    }
  });
});
但现在的问题是,我如何才能使只有一个div可以有这种背景色(在我的例子中是backgroundmenucard)。根据用户单击的哪个div,该div将具有背景色,而上一个div(单击的)应将其重置为正常。我能用这个做对吗

$(this.removeClass(“backgroundmenucard”)

有人知道这个问题的答案吗

问候,, 安德鲁

从所有

$(".menucardmenu").removeClass("backgroundmenucard");

然后将另一个选项添加到

中:

$('.menucardmenu').click(function(){
 $('.menucardmenu').removeClass('backgroundmenucard');
 $(this).addClass('backgroundmenucard');
});
$(".menucardmenu").not(this).removeClass("backgroundmenucard");
$(this).addClass("backgroundmenucard");
这样,您就不会将类删除并添加到特定(This)元素中

if($(this).hasClass(“menucardmenu”))
检查是完全不必要的,因为您已经选择了具有该类的元素。它将始终计算为
true

请尝试以下操作:

$(".menucardmenu").click(function(){
    $(".backgroundmenucard").removeClass("backgroundmenucard");
     $(this).addClass("backgroundmenucard");
  });
演示:


(我删除了
if
,因为它在这种情况下没有用)

我认为“else”块永远不会执行……我错了吗?@Sayem不,你没有错。你甚至可以说你是对的这正是我需要的。谢谢。是的,我在研究if-else语句,所以我用它来做基础。在那之后,我不确定它的用途是什么,因为我知道它已经起作用了。不管怎样,你都要将类添加到
中,所以它真的没有什么区别。
$(".menucardmenu").click(function(){
    $(".backgroundmenucard").removeClass("backgroundmenucard");
     $(this).addClass("backgroundmenucard");
  });