簡體   English   中英

Javascript,從“<body>”中刪除類的最快方法

[英]Javascript, fastest way to remove a class from `<body>`

我有一個body元素,我在其上添加了幾個類。 我希望在瀏覽器讀取之后從中刪除no-javascript類。

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

好吧,既然多余的空間無關緊要,我會說:

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

你可以在這里測試一下

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

這沒有本機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")

正則表達式比其他答案中提到的replace函數做得更好,因為它檢查是否存在那個確切的className,而不是更多或更少。 這個版本名為“piano-javascript”的類將保持不變。


對於現代瀏覽器 (包括IE10及更高版本),您還可以使用:

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

您只需使用即可避免所有這些工作

<noscript>Your browser does not support JavaScript!</noscript>

因為如果關閉Javascript,將顯示noscript標記內的任何內容,如果打開JS,則不會顯示任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM