逻辑和/或运算符 - 意外的结束结果

时间:2016-05-13 00:21:10

标签: javascript jquery

我有点尴尬,但我不明白为什么这段代码没有按预期运行。

查看调试器和控制台日志,长度为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 个答案:

答案 0 :(得分: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');