Я использую hasClass() для проверки в моей инструкции if, если элемент имеет данный класс. Как я могу проверить мой оператор if, если элемент не имеет заданного класса? Заранее благодарю за ваши ответы. Приветствия. Марк.
JQuery напротив.hasClass()?
Ответ 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)')
Ответ 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...
}