jQuery: выберите элемент, только если у него нет имени класса - PullRequest
12 голосов
/ 28 января 2012

Как я могу использовать jQuery для выбора элемента, только если у него нет классов?

Я пишу страницу, которая позволяет автору html переопределить действие jQuery по умолчанию, добавив класс к элементу. Это должен быть любой класс.

Таким образом, разметка может быть:

<ul>
  <li class="override"></li>
  <li></li>
</ul>

Я бы хотел, чтобы jQuery выбирал только второй элемент списка, потому что у него нет класса.

Я посмотрел на .hasClass (), но, похоже, требуется конкретное имя класса.

Спасибо!

Ответы [ 4 ]

21 голосов
/ 28 января 2012
8 голосов
/ 28 января 2012

Это должно сделать это:

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

Демо: http://jsfiddle.net/aMC5X/

В первой части li:not([class]) используется "не селектор" с атрибутом "has" для поиска любых элементов li, которые не имеют class атрибут вообще.

Вторая часть, li[class=""], находит все элементы li, атрибут которых имеет пустую строку.

2 голосов
/ 28 января 2012

Это должно сделать вещь: $('li').not('li[class]')

1 голос
/ 25 июня 2013

Вы можете использовать это:

if (!jQuery('li').hasClass('myClass') {
    do something...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...