jQuery—如果至少有一个元素具有类DON';我们不能继续执行功能

jQuery—如果至少有一个元素具有类DON';我们不能继续执行功能,jquery,class,elements,Jquery,Class,Elements,所以我有一个具有相同类的元素列表,我想让jQuery知道,如果至少有一个元素hasClass('invalid')不执行函数,那么所有元素都不应该有一个类才能让jQuery继续 我已经尝试了每个函数,但在这种情况下,如果只有一个元素没有类,他就可以继续,我需要所有元素都没有类。无效 例如,如果像这样的列表至少有个类.invalid,jQuery不应该做任何事情,如果所有类都没有该类。invalid(else),则不应该做任何事情 <p class="someElement">1<

所以我有一个具有相同类的元素列表,我想让jQuery知道,如果至少有一个元素hasClass('invalid')不执行函数,那么所有元素都不应该有一个类才能让jQuery继续

我已经尝试了每个函数,但在这种情况下,如果只有一个元素没有类,他就可以继续,我需要所有元素都没有类。无效

例如,如果像这样的列表至少有个类.invalid,jQuery不应该做任何事情,如果所有类都没有该类。invalid(else),则不应该做任何事情

<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>

1

2

3

4

5

6

有关如何执行此操作的任何建议?

//使用筛选器检查是否有任何元素与大小写匹配
//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
}
if($('.someElement')。筛选器('.invalid')。长度<1){ //做事 } //或者hasClass作为其逻辑的一部分循环 // https://j11y.io/jquery/#v=2.1.3&fn=jQuery.fn.hasClass if(!$('.someElement').hasClass('.invalid')){ //做事 }
//使用过滤器检查是否有任何元素与大小写匹配
if($('.someElement')。筛选器('.invalid')。长度<1){
//做事
}
//或者hasClass作为其逻辑的一部分循环
// https://j11y.io/jquery/#v=2.1.3&fn=jQuery.fn.hasClass
if(!$('.someElement').hasClass('.invalid')){
//做事
}

嗯。。。为什么不看看元素是否有类? 对于您所说的,如果您只有一个类,您不需要执行该函数,那么在这种情况下,布尔值就可以了

如果其中一个元素的类无效,只需返回false,然后验证false或true以执行所述函数

希望我能帮忙


快乐编码=}

嗯。。。为什么不看看元素是否有类? 对于您所说的,如果您只有一个类,您不需要执行该函数,那么在这种情况下,布尔值就可以了

如果其中一个元素的类无效,只需返回false,然后验证false或true以执行所述函数

希望我能帮忙


Happy coding=}

假设变量中已经有元素,您的
.hasClass
方法几乎是正确的,因为该函数确定是否将任何匹配的元素分配给给定的类:

如果它返回
true
,如果有一个或多个返回,那么如果没有,它将返回
false
,因此简单的布尔求反将匹配这种情况:

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

if (!elementList.hasClass('invalid')) {
    // none of the elements had that class
}

假设变量中已经有元素,则
.hasClass
方法几乎是正确的,因为该函数确定是否将任何匹配元素分配给给定的类:

如果它返回
true
,如果有一个或多个返回,那么如果没有,它将返回
false
,因此简单的布尔求反将匹配这种情况:

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

if (!elementList.hasClass('invalid')) {
    // none of the elements had that class
}


if(!selector.hasClass('invalid')){…}有什么问题
if(!selector.hasClass('invalid')){…}
@DearBee实际上没有必要-您已经知道的
.hasClass()
告诉您集合中的任何一个或多个元素是否具有该类,因此
$('.someElement').hasClass('invalid')
将告诉您是否没有。您甚至不需要过滤器。只要
$('.someElement.invalid')。长度<1
就行了,只要他还没有将元素存储在变量中。是的,看起来hasClass在其逻辑中确实循环。事实上-从
.hasClass
的文档中:“确定匹配的元素是否被分配给给定的类”(我的重点)@DearBee实际上没有必要-您已经知道的
.hasClass()
告诉您集合中的任何一个或多个元素是否具有该类,因此
$('.someElement').hasClass('invalid')
将告诉您是否没有。您甚至不需要过滤器。只要
$('.someElement.invalid')。长度<1
就行了,只要他还没有将元素存储在变量中。是的,看起来hasClass在其逻辑中确实循环。事实上,从
.hasClass
的文档中可以看出:“确定是否有任何匹配的元素被分配给了给定的类”(我的重点)虽然在技术上是正确的,但这种风格的回答并不是特别有用,因为它冗长而健谈,但没有代码。(不是我的反对票,顺便说一句)@Alnitak谢谢你的意见。当我回答这个问题的时候,我没有任何代码,所以我只是写了逻辑来这样做。但下次我回答什么问题时,我会请你注意。再次感谢虽然技术上是正确的,但这种风格的回答并不是特别有用,因为它冗长而健谈,但没有代码。(不是我的反对票,顺便说一句)@Alnitak谢谢你的意见。当我回答这个问题的时候,我没有任何代码,所以我只是写了逻辑来这样做。但下次我回答什么问题时,我会请你注意。感谢阿加尼喜欢这样,但将与塔普拉的方法,简单的过滤函数解决它足够简单,但感谢您的解决方案!就个人而言,我可能会选择hasClass方法<代码>筛选器()/代码>是一个泛型函数,它必须考虑它可以得到的任何输入以便获得结果,其中<<代码> HasCype()/Cux>专门检查类,因此可能会有一些性能增益。最有可能是不引人注意的,但最有可能是更高的性能。@DearBee您的呼叫-对于更复杂的选择器,
.filter
方法很有效,但您已经自己识别了
.hasClass
,它实际上比
.length<1
测试更简单。是的,我必须重新考虑这个,绝对是更好的解决方案。我喜欢它,但将采用塔普拉的方法,s