JQuery напротив.hasClass()?

Я использую hasClass() для проверки в моей инструкции if, если элемент имеет данный класс. Как я могу проверить мой оператор if, если элемент не имеет заданного класса? Заранее благодарю за ваши ответы. Приветствия. Марк.

Ответ 1

Почему не просто:

if (!el.hasClass ('foo'))
{

}

Ответ 2

В общем случае в javascript, чтобы проверить противоположность логического результата, используйте логический оператор NOT ! :

var isValid = false;
if (!isValid) {
    // execute if isValid = false;
}

Для вашего вопроса .hasClass() возвращает логическое значение, если элемент имеет указанный класс, поэтому, если у вас есть выражение:

<div class="someClass"></div>

if ($('div').hasClass('someClass')) {
    // will execute
}

чтобы проверить, нет ли этого класса:

if (!$('div').hasClass('someClass')) {
    // will not get here because our element has the class "someClass"
}

При выборе элементов, если вы хотите избежать тех, у кого есть определенный класс, вы можете использовать псевдо-селектор: :not():

$('div:not(.someClass)')

О кнопке: not()

Ответ 3

if (!element.hasClass('classname')) {
    ...
}

Ответ 4

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

el.is('.oneClass:not(.secondClass)')

если вам нужно проверить более одного класса или

el.is(':not(.secondClass)')

если вам нужен только один класс.

Ответ 5

Для использования chaning вы можете использовать фильтр.

$(...some selector...).filter(function (){ 
    return !$(this).hasClass('yourclass');
}).each-or-do-more

Ответ 6

if (!($('class/id/objct').hasClass('class name'))) {
       //codes here...
 }