我有一个body元素,我在其上添加了几个类。我希望在浏览器读取之后从中移除no-javascript
类。
<body class="foo boo no-javascript bla">
<script type="javascript">
// remove no-javascript class here
</script>
答案 0 :(得分:46)
好吧,因为两者之间的空间无关紧要,我会说:
document.body.className = document.body.className.replace("no-javascript","");
答案 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,则不会显示任何内容。