选择没有任何类的元素

Pad*_*Boy 38 html jquery jquery-selectors

我需要通过jQuery选择器找到页面中没有类的所有跨度.

例:

<span class='Cool'>do not found me</span>
<span>me, me, take me please!!!</span>
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 63

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

$('span:not([class!=""])')
Run Code Online (Sandbox Code Playgroud)

jsFiddle预览

但请注意,这[att!=val]是一个非标准的jQuery选择器,这意味着选择器不能在CSS中使用或使用document.querySelectorAll().如果你像我一样,并且你是遵循标准的坚持者,所以想尽可能避免使用非标准的jQuery选择器,以下是直接的等价物:

$('span:not([class]), span[class=""]')
Run Code Online (Sandbox Code Playgroud)

这匹配

  • span没有 class属性的元素,和
  • span该元素有一个class属性,但只有当属性值是空的.

但是,在大多数情况下,您应该只能使用第一部分:

$('span:not([class])')
Run Code Online (Sandbox Code Playgroud)

您通常只会class在负责输出它的应用程序生成的标记中找到空属性,或者由没有注意的开发人员找到.

  • @ brass-kazoo:第一个选择器的CSS版本有点不同,因为没有`[!=]`属性选择器; 你会使用`span:not([class]),span [class =""]`.但是,在大多数情况下,你应该能够摆脱`span:not([class])`.你通常只会在脚本生成的标记中或者没有注意的人身上找到空的`class`属性:) (3认同)