Jquery 如何在多个类(2个以上)之间切换?

Jquery 如何在多个类(2个以上)之间切换?,jquery,html,css,Jquery,Html,Css,我会尽力解释我想做什么。如果类多于2个,如何在多个类之间切换?当我单击彩色按钮时,容器颜色类将被添加/交换。当我单击白色按钮时,它将删除容器颜色类 为了更好地理解,下面是一个JSFIDLE示例: 我希望有人能帮忙。 谢谢 HTML: 您可以使用jQuery: $('.btn').click(function() { var color = $(this).attr('data-class'); //check to see if el has class btn-reset

我会尽力解释我想做什么。如果类多于2个,如何在多个类之间切换?当我单击彩色按钮时,容器颜色类将被添加/交换。当我单击白色按钮时,它将删除容器颜色类

为了更好地理解,下面是一个JSFIDLE示例:

我希望有人能帮忙。 谢谢

HTML:

您可以使用jQuery:

$('.btn').click(function()
{
    var color = $(this).attr('data-class');
    //check to see if el has class btn-reset
    if ($(this).hasClass('btn-reset')) {
        $('.container').attr('class', 'container')
    } else {
        $('.container').attr('class', 'container cont-'+ class)
    }
})
您的html更改为:

<div class="buttons">
  <div class="btn btn-reset" data-class="reset"></div>
  <div class="btn btn-red" data-class="red"></div>
  <div class="btn btn-green" data-class="green"></div>
  <div class="btn btn-yellow" data-class="yellow"></div>
</div>
参考文献:

jsiddle:

您使用jQuery:

$('.btn').click(function()
{
    var color = $(this).attr('data-class');
    //check to see if el has class btn-reset
    if ($(this).hasClass('btn-reset')) {
        $('.container').attr('class', 'container')
    } else {
        $('.container').attr('class', 'container cont-'+ class)
    }
})
您的html更改为:

<div class="buttons">
  <div class="btn btn-reset" data-class="reset"></div>
  <div class="btn btn-red" data-class="red"></div>
  <div class="btn btn-green" data-class="green"></div>
  <div class="btn btn-yellow" data-class="yellow"></div>
</div>
参考文献:


jsiddle:

您可以使用addclass来切换类

let container = $('.container');

$('.btn').click(function(){
  container.attr('class', 'container');
  if($(this).hasClass('btn-red')) container.addClass('cont-red');
  else if($(this).hasClass('btn-green')) container.addClass('cont-green');
  else if($(this).hasClass('btn-yellow')) container.addClass('cont-yellow');
});

您可以使用addclass来切换类

let container = $('.container');

$('.btn').click(function(){
  container.attr('class', 'container');
  if($(this).hasClass('btn-red')) container.addClass('cont-red');
  else if($(this).hasClass('btn-green')) container.addClass('cont-green');
  else if($(this).hasClass('btn-yellow')) container.addClass('cont-yellow');
});

如果需要,可以像这样使用JQuery:

<div class="container change-color">
    When I click on the colored buttons above, then container color class 
    will exchanged. When I click on the white button, then it removes 
    container color class. How to do it?
</div>

$('.change-color').click(function(){
    var theColorIs = $(this).css("background-color");
    $('.container').css('background-color', theColorIs);
});

如果需要,可以像这样使用JQuery:

<div class="container change-color">
    When I click on the colored buttons above, then container color class 
    will exchanged. When I click on the white button, then it removes 
    container color class. How to do it?
</div>

$('.change-color').click(function(){
    var theColorIs = $(this).css("background-color");
    $('.container').css('background-color', theColorIs);
});

纯javascript如下所示:

<div class="container change-color">
    When I click on the colored buttons above, then container color class 
    will exchanged. When I click on the white button, then it removes 
    container color class. How to do it?
</div>

$('.change-color').click(function(){
    var theColorIs = $(this).css("background-color");
    $('.container').css('background-color', theColorIs);
});
var按钮=document.queryselectoral.btn; var container=document.getElementByIdcontainer_1; 变量容器颜色类别=[续红、续绿、续黄]; 按钮。forEachfunctionbutton{ button.AddEventListener单击,函数{ 容器\u颜色\u类。forEachfunctioncolor{ container.classList.removecolor; } var className=this.getAttributedata-class; ifclassName!==null container.classList.addclassName; }; }; /*钮扣*/ .btn{ 显示:内联块; 宽度:30px; 高度:30px; 保证金:3倍; 光标:指针; 边框:2个实心333; } .btn.btn-red{背景色:红色;} .btn.btn-green{背景色:绿色;} .btn.btn-yellow{背景色:黄色;} /*容器*/ .集装箱{ 最大宽度:480px; 边缘顶部:20px; 填充:40px; 边框:2个实心333; } /*容器颜色类*/ .container.cont-red{背景色:红色;} .container.cont-green{背景色:绿色;} .container.cont-yellow{背景色:黄色;} 当我单击彩色按钮时,容器颜色类将被添加/交换。当我单击白色按钮时,它将删除容器颜色类。怎么做?
纯javascript如下所示:

<div class="container change-color">
    When I click on the colored buttons above, then container color class 
    will exchanged. When I click on the white button, then it removes 
    container color class. How to do it?
</div>

$('.change-color').click(function(){
    var theColorIs = $(this).css("background-color");
    $('.container').css('background-color', theColorIs);
});
var按钮=document.queryselectoral.btn; var container=document.getElementByIdcontainer_1; 变量容器颜色类别=[续红、续绿、续黄]; 按钮。forEachfunctionbutton{ button.AddEventListener单击,函数{ 容器\u颜色\u类。forEachfunctioncolor{ container.classList.removecolor; } var className=this.getAttributedata-class; ifclassName!==null container.classList.addclassName; }; }; /*钮扣*/ .btn{ 显示:内联块; 宽度:30px; 高度:30px; 保证金:3倍; 光标:指针; 边框:2个实心333; } .btn.btn-red{背景色:红色;} .btn.btn-green{背景色:绿色;} .btn.btn-yellow{背景色:黄色;} /*容器*/ .集装箱{ 最大宽度:480px; 边缘顶部:20px; 填充:40px; 边框:2个实心333; } /*容器颜色类*/ .container.cont-red{背景色:红色;} .container.cont-green{背景色:绿色;} .container.cont-yellow{背景色:黄色;} 当我单击彩色按钮时,容器颜色类将被添加/交换。当我单击白色按钮时,它将删除容器颜色类。怎么做?
谢谢@Renzo Calla,但是如果容器还包含其他类,那么代码将删除它们。那不好。谢谢@Renzo Calla,但是如果容器还包含其他类,那么代码将删除它们。那不好。谢谢,但是容器颜色类仍然很重要。您可以将容器类更改为其他任何内容。我已经编辑了答案。我的意思是类。container.cont-red、.container.cont-green、.container.cont-yellow。我想在这些类之间切换。谢谢,但是容器颜色类仍然很重要。您可以将容器类更改为其他任何内容。我已经编辑了答案。我的意思是类。container.cont-red、.container.cont-green、.container.cont-yellow。我想在这些类之间切换。抱歉@Thisgays有两个拇指,但您的代码无效:@Wilson先生check fiddle抱歉,我错了。但是现在您的代码也删除了自定义类。那不是我想要的@mrWilson当我点击上面的彩色按钮时,容器颜色类将被交换。当我单击白色按钮时,它将删除容器颜色类。怎么做?是你的评论吗?我的代码就是这样做的?我糊涂了?@wilson先生我的代码还是这样吗?您需要始终交换类,永远不要添加-一个将覆盖另一个,并且在css文件中声明的最后一个将获胜-这将导致意外行为抱歉@ThisgyHassTwothumbs,但您的代码无效:@mrWilson check fiddle抱歉,我的错误。但是现在您的代码也删除了自定义类。那不是我想要的@mrWilson当我点击上面的彩色按钮时,容器颜色类将被交换。当我点击白色但是
吨,然后删除容器颜色类。怎么做?是你的评论吗?我的代码就是这样做的?我糊涂了?@wilson先生我的代码还是这样吗?您需要始终交换类,从不添加-一个将覆盖另一个,并且在css文件wins中声明的最后一个-这将导致意外行为我更新了示例代码:我更新了示例代码:谢谢@Emre HIZLI,但您的代码也删除了自定义类。那不是我想要的@威尔逊先生现在检查我的答案。我编辑了您的评论。@Wilson先生对此表示抱歉。我又更新了。检查这个,它现在可以工作了。太棒了谢谢@Emre HIZLI是否可以对本地存储执行相同的操作?@Wilson先生是的,这是可能的。我能为您做些什么?谢谢@Emre-HIZLI,但是您的代码也删除了自定义类。那不是我想要的@威尔逊先生现在检查我的答案。我编辑了您的评论。@Wilson先生对此表示抱歉。我又更新了。检查这个,它现在可以工作了。太棒了谢谢@Emre HIZLI是否可以对本地存储执行相同的操作?@Wilson先生是的,这是可能的。我能为您效劳吗?