select没有任何类的元素

我需要通过jQueryselect器find页面中没有类的所有跨度。

例:

<span class='Cool'>do not found me</span> <span>me, me, take me please!!!</span> 

使用:not()和属性not selector [att!=val]过滤掉具有非空class属性的元素:

 $('span:not([class!=""])') 

jsFiddle预览

但是请注意, [att!=val]是一个非标准的jQueryselect器,这意味着select器不能在CSS或document.querySelectorAll() 。 如果你像我一样,而且你是一个遵守标准的人,所以你想避开非标准的jQueryselect器,下面是一个直接的等价物:

 $('span:not([class]), span[class=""]') 

这匹配

  • 没有 class属性的span元素,和
  • span元素具有class属性,但仅当属性值为空时。

但是在大多数情况下,你应该能够摆脱第一部分:

 $('span:not([class])') 

您通常只会在负责输出的应用程序或由不注意的开发人员生成的标记中find空的class属性。

看到这个答案只用CSS做我可以写一个CSSselect器select元素没有一定的类?

 :not([class]) 

实际上,这将select任何没有应用的类。

我收集了一个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}