0

是否有一种用于className在 JavaScript 中设置属性的方法?我的意思是你不必担心是否已经定义了一些类(-es)。

我能想到的最短的是

var objDemo = document.getElementById("demo");
objDemo.className = "newclass " + (objDemo.className || "");

如果当前未定义,这不会死className,但是它给我留下了一个尾随空格。对于当前的浏览器来说,这会是一个问题吗?

4

2 回答 2

1
document.getElementById('demo').classList.add('newclass');

您可以在 Mozilla 开发网络上阅读有关此 API 的更多信息:https ://developer.mozilla.org/en-US/docs/Web/API/element.classList

请注意,Internet Explorer 10 之前的版本尚不支持,但在上面引用的页面上提供了一个 polyfill。

于 2013-05-20T19:03:56.730 回答
1

您可能想首先检查是否已经有一个具有您要添加的名称的类,或者如果找到它,只需将其移动到类列表的末尾。

此功能适用于大多数浏览器,无需任何 polly 填充:

function addClass(element, c){
    var c1= element.className.replace(RegExp('\\s*'+c+'\\b\\s*'), '');
    element.className= c1? c1+' '+c:c;
}
于 2013-05-20T21:05:40.440 回答