当我的body
元素没有获得以下任何类时,我正在编写要执行的脚本:
a OR b OR c AND d
我尝试了这个,但它似乎没有做到这一点:
if ((!$('body').hasClass('a')) || (!$('body').hasClass('b')) || ((!($('body').hasClass('c')) && (!$('body').hasClass('d'))))) {
}
更新
这似乎有效:
if (!($('body').hasClass('a') || $('body').hasClass('b') || $('body').hasClass('c') && $('body').hasClass('d'))) {
}
答案 0 :(得分:0)
您正在寻找没有任何课程的正文,因此您需要使用&&
。继承人会发生什么:
if(hasclass(a) || hasclass(b))
= if(true OR false)
= if(true)
在OR运算符||
之上意味着一旦它达到真正的评估,它将执行你的if
- 阻止。
if(hasclass(a) && hasclass(b))
= if(true AND false)
= if(false)
此处AND运算符&&
表示一旦您点击false
评估,您就会阻止执行。
你希望最后一件事发生,因为你希望它没有这两个类。了解如何与这些操作员一起玩,因为他们可能会非常困惑。只要你记得AND运算符只有在所有语句都为真时才执行,而OR运算符只在其中一个语句为真时执行。嵌套运算符的工作方式相同,因此如果a,b和c相同,则执行if((a = b && b = c) || (a = c))
时a和c相同,但a和b相同或a和c相同时不执行。< / p>
更多关于表达式和运算符(特别是Bitwise和必读):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Bitwise_operators
答案 1 :(得分:0)
使用
$(function(){
if ((!$('body').hasClass('a')) || (!$('body').hasClass('b')) || !($('body').hasClass('c') && $('body').hasClass('d'))) {
}
});