Javascript 在单个语句中多个语句,如果不起作用
Javascript multiple statements in a single if not working
我有 20 个div,每个div 都有一个 speficif 类,所以我选择它并检查是否是 4 个"特殊类"中的 1 个。
主要问题是以下代码应该可以工作...
$('.cbp-ig-grid li, .cbp-ig-grid li a span object').on('click', function () {
/* Variables Definition */
var item = $(this).find('span').attr('class').split(' ')[1]
}
if((item != 'item1') || (item != 'item2') || (item != 'item3') || (item != 'item4')){
// Always enters here!
}else{
// Never enters here :( (I need to enter here for the 4 cases in the if statement)
}
但是当我只做一个...它有效!
if(item != 'item1'){
// do stuff
}else{
// do other stuff
}
我不知道我做错了什么,请任何帮助都会有用
考虑你的if语句:
if((item != 'item1') || (item != 'item2') || (item != 'item3') || (item != 'item4')){
}
也就是说,如果这些条件中的任何一个为真,则满足 if 条件,它将执行 if 块。
假设该项目"item2"
现在满足 if 语句的第一个表达式,因为它不item1
,因此该部分为真。 因此,它执行块。你想要的是:&&
if((item != 'item1') && (item != 'item2') && (item != 'item3') && (item != 'item4')){
//when it's not the special case.
}
else
{
//the 4 special cases.
}
if((item != 'item1') || (item != 'item2') || (item != 'item3') || (item != 'item4')){
没有机会在这里进入其他... item
总是与一个或另一个不同。
.hasClass()
是你最好的朋友。 https://api.jquery.com/hasclass/
$('.cbp-ig-grid li, .cbp-ig-grid li a span object').on('click', function () {
/* Variables Definition */
var item = $(this).find('span');
switch(true) {
case item.hasClass('item1'):
// item 1
break;
case item.hasClass('item2'):
// item 2
break;
case item.hasClass('item3'):
// item 3
break;
case item.hasClass('item4'):
// item 4
break;
default:
// other stuff
}
});
让我们让它变得简单
if((item != 'item1') || (item != 'item2') || (item != 'item3') || (item != 'item4'))
让我们测试一下:
1:
item = 'item1':
false || true || true || true
that equals to true; because false || true = true
阿拉伯数字:
item = 'theGreatOldOnes'
true || true || true || true - that equal to true
两者都是真的!这意味着你的表达是有缺陷的——"特殊类"和任何"非特殊类"之间没有区别
要使其理解"特殊"和"不特殊"之间的区别,您需要使用:
if((item != 'item1') && (item != 'item2') && (item != 'item3') && (item != 'item4'))
或
if((item === 'item1') || (item === 'item2') || (item === 'item3') || (item === 'item4'))
您可以使用"item1"和"theGreatOldOnes"进行测试,以更好地掌握这些东西^ ^
相关文章:
- Javascript else(如果不适用于所有语句)
- Javascript变量到PHP变量-如果语句不起作用,则发布
- 如果语句不起作用,请单击
- 如果语句为true,则对一个或多个ng进行角度检查
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 如果..其他 引号内的语句
- Javascript 一行 If..还..否则如果语句
- 如果语句不起作用 - JavaScript
- 如果 onclick 和 onselect 中的语句在 ASP.NET 不起作用
- Javascript程序,如果语句有困难
- JS-如果是语句运算符,这是怎么编译的
- 使用javascript中的if和else语句来显示图像(如果图像不存在,则显示其他图像)
- 如何停止和if语句如果另一个if语句为true
- 如果语句由于某种原因不起作用
- 如果语句有效,我将如何更改该语句的逻辑
- 如果不满足条件语句,则触发引导模式
- 如果其他语句层次结构 JS
- 为什么我的JS"如果“;语句的求值结果总是为false
- Javascript if语句如果url包含子字符串
- if语句-如果在javascript中不起作用则使用Else语句