正确函数:
function addClass(element,value) {
if(!element.className) {
element.className = value;
} else {
newClassName = element.className;
newClassName += " ";
newClassName += value;
element.className = newClassName;
}
}
写成这样可以吗?
function addClass(element,value) {
if(!element.className) {
element.className = value;
} else {
newClassName += " ";
newClassName += value;
}
element.classList.add() 比较方便
如果你要兼容IE10以下的那我无话可说
相当于
存在兼容性问题
等价于以上,解决兼容问题
其他封装的方法
答案是肯定不行的呀
这个要实现的是给dom元素添加一个类,
else
分支里面,你只操作一个字符串,最后没有设给dom元素能有什么用呢? 添加的类要生效,肯定是必须要放到dom元素上去的另外你的正确写法也存在问题:
其实
else
分支还可以简化不可以。函数的目的是给
element
加上一个叫value
的类,你else
里面根本没有对element.className
进行赋值怎么行,那个newClassName
只是个变量,用来保存现有class
,并加上value
这个新class
后,塞回element.className
,所以先有:
后有:
事实上,原函数有更优的写法,
else
里面根本不用弄个变量,直接拼就行了:不行的吧 else语句后要先赋值newClass 才能运算重新赋值element.className 去掉了貌似没有这种功能
刚看错了..
不行的