2010-12-09 82 views

Respuesta

39

Bueno, ya que los espacios adicionales entre no importa, yo diría:

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

You can test it out here.

+0

eso es todo. gracias – Alex

+3

Se cae cuando tienes otra clase llamada "piano-javascript", por ejemplo. –

+0

@Tim - Estoy de acuerdo, pero mira el nombre de la clase, este es un caso de uso * muy * específico. –

2
document.body.className = ''; 
+2

Esto eliminará todos los * * clases, no sólo 'no-javascript' –

+2

@El Ronnoco: Lo sé. Pero elimina la clase, como se le preguntó. Sé que estoy siendo demasiado literal, pero este * es * el más rápido :) – sje397

+0

Punto tomado. ¡Pensando como un verdadero programador! :) –

2

Usted puede evitar todo ese trabajo, simplemente usando

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

Dado que lo que pones dentro de noscript etiqueta se mostrará si Javascript está desactivado y nada se mostrará si JS está encendida.

+0

pero quiero mostrar toda la página incluso si js está deshabilitado, solo necesito que la clase oculte ciertos elementos con CSS – Alex

15

No hay funciones javascript nativas para esto, pero siempre uso el siguiente código (tomado de/inspirado en 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") 

La expresión regular hace un trabajo mejor que los replace funciones mencionadas en otras respuestas, porque se comprueba la existencia de ese className exacta y ni más ni menos. Una clase llamada "piano-javascript" permanecería intacta con esta versión.


para modern browsers (incluyendo IE10 en adelante) también se puede utilizar:

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

No, su respuesta es la única que funciona en todas las circunstancias. +1. –

+1

Sin embargo, una cosa: perdería la comprobación 'hasClass()' en 'removeClass()'. Es redundante –

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

En lugar de solo codificar, da una pequeña explicación – Iain

Cuestiones relacionadas