jQuery切换类的两个元素导致相遇

时间:2019-03-20 10:51:07

标签: jquery

$(".header__link--theme").click(function(){ 
    $("body").toggleClass("posht--khakestari posht--sefid");
    $("body").toggleClass("posht--khakestari-tire posht--khakestari");
});

我有这段代码可以更改页面中每个元素的类名,但结果却不是我想要的。

应该将每个b更改为c,然后将每个a更改为b;但是它将每个a更改为c。我试图更改命令的顺序,但没有帮助。

已编辑

我认为我的问题不是toggleClass,而是我选择Elements的方式。我想选择body标签内的所有内容,然后执行以下操作:

if($('*').hasClass('posht--khakestari-tire')){
    $("*").toggleClass("posht--khakestari-tire posht--khakestari");
};

1 个答案:

答案 0 :(得分:0)

如果要替换 class,则应使用以下语法:

$(".header__link--theme").click(function(){ 
    $("body").attr('class').replace("posht--khakestari" , "posht--sefid");
    $("body").attr('class').replace("posht--khakestari-tire" , "posht--khakestari");
});

否则,您需要一个一个地切换每个班级:

$(".header__link--theme").click(function(){ 
    $("body").toggleClass("posht--khakestari");
    $("body").toggleClass("posht--sefid");
    $("body").toggleClass("posht--khakestari-tire");
    $("body").toggleClass("posht--khakestari");
});

这将为您工作。