2017-02-03 29 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卡住了?