jQuery - если хотя бы один из элементов имеет класс, НЕ продолжайте работу с функцией - PullRequest
0 голосов
/ 02 мая 2018

Итак, у меня есть список элементов с одинаковыми классами, и я хочу, чтобы jQuery знал, если хотя бы один из элементов hasClass ('invalid') TO NOT выполняет функцию, поэтому все элементы не должны есть класс для продолжения работы jQuery.

Я пробовал с каждой функцией, но в этом случае, если только один из элементов не имеет класса, он хорош, и мне нужно, чтобы у всех элементов НЕ было класса .invalid .

Например, если такой список имеет хотя бы класс .invalid , jQuery ничего не должен делать, и если все классы не имеют этого класса .invalid (еще) чем что-то сделать.

<p class="someElement">1</p>
<p class="someElement">2</p>
<p class="someElement invalid">3</p>
<p class="someElement">4</p>
<p class="someElement">5</p>
<p class="someElement">6</p>

Любые предложения о том, как это сделать?

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Ну ... почему бы не посмотреть, есть ли у элементов класс? Для того, что вы сказали, если у вас есть только тот, у которого есть класс, вы не хотите выполнять эту функцию, так что в этом случае будет работать логическое значение.

Если один из элементов имеет недопустимый класс, просто верните false и после этого проверьте, является ли false или true, чтобы выполнить указанную функцию.

Надеюсь, я смогу помочь.

Счастливого кодирования =}

0 голосов
/ 02 мая 2018

Предполагая, что у вас уже есть элементы в переменной, ваш подход .hasClass является почти правильным, потому что эта функция определяет, назначен ли какой-либо из сопоставленных элементов данный класс :

Если он возвращает true, если это делает один или несколько, то он вернет false, если нет , поэтому простое логическое отрицание будет соответствовать этому случаю:

var elementList = $('p.someElement');

if (!elementList.hasClass('invalid')) {
    // none of the elements had that class
}
0 голосов
/ 02 мая 2018
//use filter to check if any element matches a case
if ($('.someElement').filter('.invalid').length < 1) {
    //do stuff
}

//or hasClass as it loops as part of it's logic
// https://j11y.io/jquery/#v=2.1.3&fn=jQuery.fn.hasClass
if (!$('.someElement').hasClass('.invalid')) {
    //do stuff
}
...