Jquery 如何在多个类(2个以上)之间切换?
我会尽力解释我想做什么。如果类多于2个,如何在多个类之间切换?当我单击彩色按钮时,容器颜色类将被添加/交换。当我单击白色按钮时,它将删除容器颜色类 为了更好地理解,下面是一个JSFIDLE示例: 我希望有人能帮忙。 谢谢 HTML: 您可以使用jQuery: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
$('.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先生是的,这是可能的。我能为您效劳吗?