Javascript,从`<body>` 中删除类的最快方法
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4397289/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Javascript, fastest way to remove a class from `<body>`
提问by Alex
I have a body element on which I add a few classes. And I want to remove the no-javascript
class from it, after it's being read by the browser.
我有一个 body 元素,我在上面添加了一些类。no-javascript
在浏览器读取该类之后,我想从中删除该类。
<body class="foo boo no-javascript bla">
<script type="javascript">
// remove no-javascript class here
</script>
回答by Nick Craver
Well, since extra spaces between don't matter, I'd say:
好吧,由于之间的额外空格无关紧要,我会说:
document.body.className = document.body.className.replace("no-javascript","");
回答by Nick Craver
document.querySelector('body').classList.remove('no-javascript');
回答by Stephan Muller
There are no native javascript functions for this, but I always use the following code (borrowed from/inspired by this snipplr
没有针对此的原生 javascript 函数,但我总是使用以下代码(借用/受此snipplr启发)
function removeClass(ele,cls) {
var reg = new RegExp('(\s|^)'+cls+'(\s|$)');
ele.className = ele.className.replace(reg,' ');
}
removeClass(document.getElementById("body"), "no-javascript")
The regex does a better job than the replace
functions mentioned in other answers, because it checks for the existence of that exact className and nothing more or less. A class named "piano-javascript" would stay intact with this version.
正则表达式比replace
其他答案中提到的函数做得更好,因为它检查该确切 className 是否存在,仅此而已。名为“piano-javascript”的类将在此版本中保持不变。
For modern browsers(including IE10 and up) you could also use:
对于现代浏览器(包括 IE10 及更高版本),您还可以使用:
document.querySelector('body').classList.remove('no-javascript');
回答by sje397
document.body.className = '';
回答by darioo
You can avoid all of that work simply by using
您可以通过使用简单地避免所有这些工作
<noscript>Your browser does not support JavaScript!</noscript>
Since whatever you put inside of noscript
tag will be shown if Javascript is turned off and nothing will be shown if JS is turned on.
因为noscript
如果 Javascript 关闭,您在标签中放置的任何内容都将显示,而如果 JS 打开,则不会显示任何内容。