Necesito encontrar, a través de los selectores de jQuery, todos los espacios en una página que no tienen clase.
Ejemplo:
<span class='Cool'>do not found me</span> <span>me, me, take me please!!!</span>Use :not() y el atributo not selector [att!=val] para filtrar elementos con un atributo de class no vacío:
$('span:not([class!=""])') Sin embargo, tenga en cuenta que [att!=val] es un selector jQuery no estándar, lo que significa que el selector no se puede usar en CSS o con document.querySelectorAll() . Si es como yo, y es estricto en seguir los estándares y desea evitar los selectores jQuery no estándar siempre que sea posible, el siguiente es un equivalente directo:
$('span:not([class]), span[class=""]')esto coincide
span elementos que no tienen atributo de class , yspan elementos que tienen un atributo de class , pero solo cuando el valor del atributo está vacío.Sin embargo, en la mayoría de los casos, debería poder salirse con la suya solo con la primera porción:
$('span:not([class])') Por lo general, solo encontrará atributos de class vacíos en el marcado generado por la aplicación que es responsable de generarlo, o por desarrolladores que no están prestando atención.
Vea esta respuesta para hacerlo solo con css . ¿Puedo escribir un selector de CSS seleccionando elementos que NO tengan una clase determinada?
:not([class])En realidad, esto seleccionará cualquier cosa que no tenga una .clase aplicada.
Reuní una demostración jsfiddle
html
<h2 class="fake-class">fake-class will be green</h2> <h2 class="">empty class SHOULD be white</h2> <h2>no class should be red</h2> <h2 class="fake-clas2s">fake-class2 SHOULD be white</h2> <h2 class="">empty class2 SHOULD be white</h2> <h2>no class2 SHOULD be red</h2>CSS
h2 {color:#fff} :not([class]) {color:red;background-color:blue} .fake-class {color:green}