jQuery里封装的有addClass函数,调用十分方便,那么用JS如何实现呢,下面我们来介绍下。
首先是CSS部分
写一个新的class用来添加
HTML部分
一个没有样式的div
script部分
声明addClass函数,把标签元素和新的class作为参数传进去,进行判断,如果标签元素原来有样式,那么就增加一个样式,如果没有样式,那么就把标签元素的样式设为传进来的样式。
调用函数,这样就实现了样式的添加。
更多前端内容 请 点击关注 点击关注
以给 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 += ' class1 class2'addClass:function(a){if(c.isFunction(a))
return this.each(function(r){
var y=c(this)
y.addClass(a.call(this,r,y.attr("class")))
})
if(a&&typeof a==="string")for(var b=(a||"").split(sa),
e=0,
g=this.lengthe<ge++){
var f=this[e]
if(f.nodeType===1)if(f.className){for(var l=" "+f.className+" ",
k=f.className,s=0,m=b.lengths<ms++)
if(l.indexOf(" "+b[s]+" ")<0)k+=" "+b[s]
f.className=c.trim(k)}else f.className=a}return this}
这是jQuery中addclass的函数部分,里面定义了传function就会执行传过来的函数,里面有个e=0是循环的开始数,比如你给多个class名称的标签加class那就会去遍历寻找每一个标签添加class,你那里面的n,应该就是对应的标签数循环标记