document.getElementById("MyElement").classList.add('MyClass');document.getElementById("MyElement").classList.remove('MyClass');if ( document.getElementById("MyElement").classList.contains('MyClass') )document.getElementById("MyElement").classList.toggle('MyClass');% ?9 n. }, |5 y
不幸的是,这些都在 v10 之前的 Internet Explorer 不起作用,虽然有一个shim可以为 IE8 和 IE9 可以从这个页面添加支持。然而,它得到了越来越多的支持。" n2 E6 m3 N6 H+ F6 R, k
简单的跨浏览器解决方案选择元素的标准 JavaScript 方式是 using document.getElementById("Id"),这是如下示例所用 - 当然,你可以通过其他方式获得元素,在正确的情况下可以简单地使用它们this- 但是,超出范围的答案被详细解释。; C: Z% i0 w7 w: f& ^* ]: e
所有要改变元素的类别:将所有现有类别替换为一个或多个新类别,请设置 className 属性:% M) ^8 D0 M8 f4 [: |4 C! x
(您可以使用空间分隔列表来应用多个类别。1 a, A K# ^% L4 b. z
添加附加元素:在不删除/影响现有值的情况下,将类添加到元素中,请添加空间和新的类名,如下所示: ! @8 h& M6 s3 D) y+ n
document.getElementById("MyElement").className = " MyClass";- G C; }5 R: k& R) k
删除元素中的一个类:在不影响其他潜在类别的情况下,需要简单的正则表达替换: % d4 N! ^# @7 s# L' I
document.getElementById("MyElement").className = document.getElementById("MyElement").className.replace ^|\s)MyClass(?!\S)/g ,'' )/* Code wrapped for readability - above is all one statement */ # X$ w5 w b* j; _. e- W
正则表达式的解释如下: 3 v9 E" I3 v1 j+ p8 p8 I
(?:^|\s) # Match the start of the string or any single whitespace characterMyClass # The literal text for the classname to remove(?!\S) # Negative lookahead to verify the above is the whole classname # Ensures there is no non-space character following # (i.e. must be the end of the string or space) % b! i. l0 s t) X* b/ {