2016-05-13 67 views
0

我有點尷尬,但我不明白爲什麼這段代碼沒有像預期的那樣工作。邏輯和/或運算符 - 意外結果結果

查看調試器和控制檯日誌,長度爲1,innerText ='找不到記錄。'我期待if語句被執行,但else語句被執行。可以肯定的是,我記錄了innerText和tr.length,結果是'找不到記錄'。和1個。我不在這裏?

var tr = $('.users').find('tr'); 
if (tr.length === 1 && ((tr[0].innerText === 'No record found.') 
    || (tr[0].innerText === 'No matching records found') 
    || (tr[0].innerText === ''))) { 
//console.log('no record found is displayed.'); 
    $('.customTableInfo').addClass('DisplayNone').removeClass('Display');      
    $('.customEntries').addClass('DisplayNone').removeClass('Display');     
    $('.itemPerPageLabel').addClass('DisplayNone').removeClass('Display');    
    $('.customPaging').addClass('DisplayNone').removeClass('Display'); 
} else { 
    console.log(tr[0].innerText); 
    $('.customTableInfo').addClass('Display').removeClass('DisplayNone');      
    $('.customEntries').addClass('Display').removeClass('DisplayNone');      
    $('.itemPerPageLabel').addClass('Display').removeClass('DisplayNone');     
    $('.customPaging').addClass('Display').removeClass('DisplayNone'); 
} 
+1

不要使用' .innerText'。這不是標準的,並且不存在於FireFox中。正確的屬性是'.textContent'。 – Barmar

+1

由於您使用jQuery,爲什麼不使用'tr.text()'? – Barmar

+0

@Barmar我將.innerText改爲tr.text()。謝謝你的提示。 –

回答

3

也許你需要使用trim();避免空格

if (tr.length === 1 && ((tr[0].innerText.trim() === 'No record found.') 
    || (tr[0].innerText.trim() === 'No matching records found') 
    || (tr[0].innerText.trim() === ''))) { 

與此代碼

$('.customTableInfo').addClass('DisplayNone').removeClass('Display');      
    $('.customEntries').addClass('DisplayNone').removeClass('Display');     
    $('.itemPerPageLabel').addClass('DisplayNone').removeClass('Display');    
    $('.customPaging').addClass('DisplayNone').removeClass('Display'); 

可以將其簡化

$('.customTableInfo ,.customEntries , .itemPerPageLabel ,.customPaging').addClass('DisplayNone').removeClass('Display'); 
+1

謝謝。添加修剪就像一個魅力。 –

+1

@JeanB很高興它幫助..很好運:) –