javaScript给元素添加多个class的简单实现
javaScript给元素添加多个class的简单实现
<html>
<head>
<styletype="text/css">
.div2{
font-size:16px;
color:orange;
}
.div3{
font-size:20px;
color:blue;
}
<style>
<scripttype="text/javascript">
[1]直接把样式赋值给className
varodiv=document.getElementById('div1');
odiv.className=div3
//这样我们会得到class="div3"会直接把div2样式给覆盖掉;
[2]使用累加赋值给className
varodiv=document.getElementById('div1');
odiv.className+=""+div3//样式和样式之间需要空隙,所以加个空字符串隔开
//这样可以得到class="div2div3"可以正常增加,但是我们在添加样式的时候我们得考虑下他本身之前有没有同名的样式,如果有我们添加的话就会变成累赘比如class="div2div3div3";
[3]检测样式原先之前是否有相同的样式
varodiv=document.getElementById('div1');
functionhasClass(element,csName){
element.className.match(RegExp('(\\s|^)'+csName+'(\\s|$)'));//使用正则检测是否有相同的样式
}
[4]在[3]的基础上我们就可以进行判断性给元素添加样式了
varodiv=document.getElementById('div1');
functionhasClass(element,csName){
returnelement.className.match(RegExp('(\\s|^)'+csName+'(\\s|$)'));//使用正则检测是否有相同的样式
}
functionaddClass(element,csName){
if(!hasClass(element,csName)){
element.className+=''+csName;
}
addClass(odiv,'div3');
//这样就可以灵活给元素添加样式了;
【元素删除指定样式】
//同样先进行判断,在进行删除
varodiv=document.getElementById('div1');
functionhasClass(element,csName){
returnelement.className.match(RegExp('(\\s|^)'+csName+'(\\s|$)'));//使用正则检测是否有相同的样式
}
functiondeleteClass(element,csName){
if(!hasClass(element,csName)){
element.className.replace(RegExp('(\\s|^)'+csName+'(\\s|$)'),'');//利用正则捕获到要删除的样式的名称,然后把他替换成一个空白字符串,就相当于删除了
}
deleteClass(odiv,div3);
}
</script>
</head>
<body>
<divid="div1"class='div2'>测试</div>
</body>
</html>
以上这篇javaScript给元素添加多个class的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。