Javascript 逻辑和/或运算符-意外的最终结果

Javascript 逻辑和/或运算符-意外的最终结果,javascript,jquery,Javascript,Jquery,我有点尴尬,但我不明白为什么这段代码的行为不符合预期 查看调试器和控制台日志,长度为1,innerText='No record found'。我希望执行if语句,但执行else语句。当然,我记录了innerText和tr.length,结果分别是'No record found'和1。我在这里没有得到什么 var tr = $('.users').find('tr'); if (tr.length === 1 && ((tr[0].innerText === 'No recor

我有点尴尬,但我不明白为什么这段代码的行为不符合预期

查看调试器和控制台日志,长度为1,innerText='No record found'。我希望执行if语句,但执行else语句。当然,我记录了innerText和tr.length,结果分别是'No record found'和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');
}

也许你需要使用
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');

也许你需要使用
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');

不要使用
.innerText
。它不是标准的,在FireFox中也不存在。正确的属性是
.textContent
。既然您使用的是jQuery,为什么不直接使用
tr.text()
?@Barmar我将.innerText改为tr.text()。谢谢你的提示。不要使用
.innerText
。它不是标准的,在FireFox中也不存在。正确的属性是
.textContent
。既然您使用的是jQuery,为什么不直接使用
tr.text()
?@Barmar我将.innerText改为tr.text()。谢谢你的提示。@JeanB很高兴这有帮助。。祝你好运:)@JeanB很高兴这有帮助。。祝你好运:)