Подтвердить что ты не робот

Javascript, самый быстрый способ удалить класс из `<body>`

У меня есть элемент body, на котором я добавляю несколько классов. И я хочу удалить из него класс no-javascript после его чтения браузером.

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

Ответ 1

Ну, так как лишние пробелы между ними не имеют значения, я бы сказал:

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

Здесь вы можете проверить его.

Ответ 2

Для этого нет встроенных функций 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, упомянутые в других ответах, потому что он проверяет существование этого точного имени класса и ничего более или менее. Класс с именем "piano-javascript" останется неизменным с этой версией.


Для современных браузеров (включая IE10 и выше) вы также можете использовать:

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

Ответ 3

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

Ответ 4

document.body.className = '';

Ответ 5

Вы можете избежать всего этого, просто используя

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

Так как все, что вы помещаете в тег noscript, будет отображаться, если Javascript выключен и ничего не будет показано, если JS включен.