2017-02-03 70 views
1

我可能失去了一些东西在这里很明显,但我有2个值,我需要检查jQuery的不等于没有工作

if(data['width'] != 2000 || data['width'] != 750){ 
    $('.image-warning').show(); 
} 

我要显示的图像警告,如果返回值不是2000或750的条件但似乎总是显示。

回答

9

你的逻辑是有缺陷的。你不能在or条件下使用这样的负面检查,因为如果一方失败,另一方会失败,因此情况总是如此。你需要使用一个逻辑and条件代替:

if (data['width'] != 2000 && data['width'] != 750){ 
    $('.image-warning').show(); 
} 
+0

Ahh做了诡计,只是假设&&意味着它将需要满足两个要求,而不是一个或另一个,但似乎已经工作大声笑感谢队友 – James

+2

这就是它意味着:)例如。 600不是2000 **,**不是750,所以条件成立,并调用show()。同样,750不是2000,而是* 750,所以条件失败。 –

3

我同意并upvoted罗里McCrossan的答案。他应该得到“正确的答案检查”。不过,我建议做到以下几点:

if (!(data['width'] == 2000 || data['width'] == 750)){ 
    $('.image-warning').show(); 
} 

伪:

if (is not (2000 or 700)){ 
    show 
} 

这是一样的!但为什么?事情是避免双重逻辑冲突。有争议的是,这并不重要,但确实如此。我发布的逻辑是OP要求的准确翻译。 the returned value is not 2000 or 750。当逻辑被翻译成普通的口语时,它变得更容易并避免混淆。 让我们把这个想法,如果这不是一个问题,为什么OP卡住了?