是否有一种用于className
在 JavaScript 中设置属性的方法?我的意思是你不必担心是否已经定义了一些类(-es)。
我能想到的最短的是
var objDemo = document.getElementById("demo");
objDemo.className = "newclass " + (objDemo.className || "");
如果当前未定义,这不会死className
,但是它给我留下了一个尾随空格。对于当前的浏览器来说,这会是一个问题吗?
是否有一种用于className
在 JavaScript 中设置属性的方法?我的意思是你不必担心是否已经定义了一些类(-es)。
我能想到的最短的是
var objDemo = document.getElementById("demo");
objDemo.className = "newclass " + (objDemo.className || "");
如果当前未定义,这不会死className
,但是它给我留下了一个尾随空格。对于当前的浏览器来说,这会是一个问题吗?
document.getElementById('demo').classList.add('newclass');
您可以在 Mozilla 开发网络上阅读有关此 API 的更多信息:https ://developer.mozilla.org/en-US/docs/Web/API/element.classList
请注意,Internet Explorer 10 之前的版本尚不支持,但在上面引用的页面上提供了一个 polyfill。
您可能想首先检查是否已经有一个具有您要添加的名称的类,或者如果找到它,只需将其移动到类列表的末尾。
此功能适用于大多数浏览器,无需任何 polly 填充:
function addClass(element, c){
var c1= element.className.replace(RegExp('\\s*'+c+'\\b\\s*'), '');
element.className= c1? c1+' '+c:c;
}