我有20个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
}
我不知道我做错了什么,请任何有用的帮助
答案 0 :(得分:2)
考虑你的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.
}
答案 1 :(得分:2)
if((item != 'item1') || (item != 'item2') || (item != 'item3') || (item != 'item4')){
没有机会进入其他地方... item
总是与其中一个不同。
答案 2 :(得分:2)
.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
}
});
答案 3 :(得分:1)
让它变得简单
if((item != 'item1') || (item != 'item2') || (item != 'item3') || (item != 'item4'))
让我们测试一下:
1:
item = 'item1':
false || true || true || true
that equals to true; because false || true = true
2:
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'进行测试和#GoodOldOnes'为了更好地掌握这些东西^ ^