在javascript比较中丢失
Lost in javascript comparisons
本文关键字:比较 javascript 更新时间:2023-09-26
我正在编写一个脚本,当我的body
元素没有以下任何类时执行:
a或b或c与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'))) {
}
使用
$(function(){
if ((!$('body').hasClass('a')) || (!$('body').hasClass('b')) || !($('body').hasClass('c') && $('body').hasClass('d'))) {
}
});
您正在寻找一个没有任何类的主体,因此需要使用&&
。以下是发生的情况:
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运算符只有在所有语句都为true时才会执行,OR运算符只有在其中一个语句为true时才执行。嵌套运算符的工作原理相同,因此如果a、b和c相同,if((a = b && b = c) || (a = c))
将执行,或者当a和c相同时执行,但当a和b相同或a和c相等时不执行。
有关表达式和运算符(特别是位和必读)的详细信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Bitwise_operators
相关文章:
- 无法比较javascript变量
- 比较javascript中的浮动并更改最高浮动的颜色
- 比较Javascript中的两个字符串时出错
- 比较javascript数组中的数值
- 比较 JavaScript 中的值
- 如何比较 JavaScript 格式为 2011-jan-21 的两个日期
- 是否有必要使用 === 来比较 Javascript 中的字符串,或者 == 就足够了
- 使用Jquery比较Javascript中的两个列表/表
- 比较javascript中的两个数组
- 如何在单元测试中比较JavaScript对象
- 比较javascript/jquery中的两个字符串
- 比较Javascript中的两个数组
- 比较javascript中的数组时出错
- 比较javascript中的函数指针
- 无法比较 javascript 数组中的两个值
- 如何仅针对某些属性比较 JavaScript 中的对象
- 循环并比较JavaScript对象
- 比较 JavaScript 中的变量
- 比较Javascript/Jquery中的确切结果
- 比较 JavaScript 日期对象