Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript,从`<;中删除类的最快方法;车身>`_Javascript_Html_Css - Fatal编程技术网

Javascript,从`<;中删除类的最快方法;车身>`

Javascript,从`<;中删除类的最快方法;车身>`,javascript,html,css,Javascript,Html,Css,我有一个body元素,我在它上面添加了几个类。在浏览器读取no-javascript类之后,我想从中删除它 <body class="foo boo no-javascript bla"> <script type="javascript"> // remove no-javascript class here </script> //此处不删除任何javascript类 好吧,既然两个字符之间的额外空格无关紧要,我想说: d

我有一个body元素,我在它上面添加了几个类。在浏览器读取
no-javascript
类之后,我想从中删除它

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

//此处不删除任何javascript类

好吧,既然两个字符之间的额外空格无关紧要,我想说:

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

.

只需使用

<noscript>Your browser does not support JavaScript!</noscript>
您的浏览器不支持JavaScript!

因为无论你在
noscript
标签中放置什么,如果关闭Javascript,标签都会显示出来,如果打开JS,标签什么也不会显示。

没有用于此的本机Javascript函数,但我总是使用以下代码(借鉴/启发自

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


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

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

这将删除所有类,不仅仅是
没有javascript
@El Ronnoco:我知道。但它确实会删除类,正如所问的那样。我知道我过于文字化,但这是最快的:)要点。像真正的程序员一样思考!:)我投了反对票,但重新考虑了一下,因为它确实回答了这个问题。我实际上最喜欢这个,在添加另一个窗口宽度更改之前,我使用它清除所有类名。但我想显示所有页面,即使js被禁用,我只需要在调用另一个类时,该类使用CSSFall隐藏某些元素例如,“piano javascript”。@Tim-我同意,但看看类名,这是一个非常具体的用例。同意。只是向任何希望将其应用于geenral案例的人指出。@Tim-是的,公平地说,对于目前为止已经准备好的任何人来说,上面更普遍的用法是:
document.body.className=”“+document.body.className+”.replace(“无javascript”,”)。。。除非
className
字符串的开头有“no javascript”。@Stephan Muller的回答涵盖了一般情况。但有一件事:我会丢失
hasClass()
签入
removeClass()
。这是多余的。因为这是我喜欢的方法,我会解释的
document.querySelector
使用CSS选择器语法选择页面上的指定元素,在本例中为
正文
。接下来,
classList
返回与元素关联的类。最后,
.remove
将从
类列表中删除任何指定的类。
function removeClass(ele,cls) {
   var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
   ele.className = ele.className.replace(reg,' ');
}

removeClass(document.getElementById("body"), "no-javascript")
document.querySelector('body').classList.remove('no-javascript');
document.querySelector('body').classList.remove('no-javascript');