如何用javascript为元素添加class?

 我来答
wuqianyu506
推荐于2019-08-25 · TA获得超过4513个赞
知道小有建树答主
回答量:10
采纳率:0%
帮助的人:1410
展开全部

以给 body 标签添加 class 为例

通过 jQuery

$( 'body').addClass( 'class1 class2' );
$( 'body' ).removeClass( 'class1 class2' );

支持 classList 的高级浏览器(IE10+,Chrome,Firefox,Safari)

document.body.classList.add( 'class1', 'class2' );
document.body.classList.remove( 'class1', 'class2' );

不支持 classList 的浏览器只能通过 className 来添加

document.body.className += ' cl

[1]直接把样式赋值给className

var odiv=document.getElementById('div1');

odiv.className= div3

//这样我们会得到 class ="div3" 会直接把div2样式给覆盖掉;

[2]使用累加赋值给className

var odiv=document.getElementById('div1');

odiv.className+=" "+div3    //样式和样式之间需要空隙 ,所以加个空字符串隔开

//这样可以得到 class="div2 div3" 可以正常增加,但是我们在添加样式的时候我们得考虑下他本身之前有没有同名的样式,如果有我们添加的话就会变成累赘 比如class="div2 div3 div3";

[3]检测样式原先之前是否有相同的样式

var odiv=document.getElementById('div1'); 

function hasClass(element,csName){

element.className.match(RegExp('(\\s|^)'+csName+'(\\s|$)')); //使用正则检测是否有相同的样式



}  

[4]在[3]的基础上我们就可以进行判断性给元素添加样式了     

var odiv=document.getElementById('div1'); 

function hasClass(element,csName){

return  element.className.match(RegExp('(\\s|^)'+csName+'(\\s|$)')); //使用正则检测是否有相同的样式

} 

function addClass(element,csName){

if(!hasClass(element,csName)){

element.className+=' '+csName;

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式