Javascript,从``中删除类的最快方法

时间:2010-12-09 10:39:58

标签: javascript html css

我有一个body元素,我在其上添加了几个类。我希望在浏览器读取之后从中移除no-javascript类。

   <body class="foo boo no-javascript bla">
   <script type="javascript">
      // remove no-javascript class here
   </script>

5 个答案:

答案 0 :(得分:46)

好吧,因为两者之间的空间无关紧要,我会说:

document.body.className = document.body.className.replace("no-javascript","");

You can test it out here

答案 1 :(得分:17)

这没有原生的javascript函数,但我总是使用以下代码(借鉴this snipplr

的灵感
function removeClass(ele,cls) {
   var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
   ele.className = ele.className.replace(reg,' ');
}

removeClass(document.getElementById("body"), "no-javascript")

正则表达式比其他答案中提到的replace函数做得更好,因为它检查是否存在那个确切的className,而不是更多或更少。这个版本名为“piano-javascript”的类将保持不变。


对于modern browsers(包括IE10及以上版本),您还可以使用:

document.querySelector('body').classList.remove('no-javascript');

答案 2 :(得分:17)

document.querySelector('body').classList.remove('no-javascript');

答案 3 :(得分:2)

document.body.className = '';

答案 4 :(得分:1)

只需使用

即可避免所有这些工作
<noscript>Your browser does not support JavaScript!</noscript>

因为如果Javascript被关闭,那么你在noscript标签内的任何内容都会被显示,如果启用了JS,则不会显示任何内容。