如何在不使用jQuery(或类似的库)的情况下,向根<html>
元素添加类名“foo”?
如何在不使用jQuery(或类似的库)的情况下,向根<html>
元素添加类名“foo”?
只需获取该元素并将其附加到类列表中即可。
document.documentElement.className += " foo";
-=
运算符以同样的方式删除一个类时,类名中会出现NaN
,而不是空(JS在使用+
和-
运算符时自动转换为数字?)。当然,如果您只有一个类,可以使用= "";
来删除它,但是Olivér Kovács的答案对我的情况最好。 - Anderson+=
时,它会将两个字符串document.documentElement.className
和" foo"
连接起来,但是JavaScript中没有用于字符串的-
运算符。因此,解释器会隐式地将字符串document.documentElement.className
和" foo"
转换为数字,这导致产生了NaN
。NaN - NaN
的结果是NaN
。您可以在Chrome控制台中执行"hello" - "foo"
以查看相同的结果。 - Jeremy WiebeAddClass(document.documentElement, 'my-awesome-class', true); //add
AddClass(document.documentElement, 'my-awesome-class', false); //remove
function AddClass(o,c,bAdd){
var list = o.className.split(" ");
if (list.indexOf(c)!==-1){
if (!bAdd) delete list[list.indexOf(c)];
}else{
if (bAdd) list[list.length] = c;
}
o.className = list.join(" ");
}