Reputation: 341
I am a little embarrassed, but I don't understand why this piece of code is not behaving as expected.
Looking at the debugger and console log, the length is 1, and the innerText = 'No record found.' I was expecting the if statement to be executed, but the else statement is executed instead. To be sure, I logged the innerText and tr.length, and the result is 'No record found.' and 1 respectively. What am I not getting here?
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');
}
Upvotes: 0
Views: 40
Reputation: 24001
maybe you need to use trim();
to avoid white spaces
if (tr.length === 1 && ((tr[0].innerText.trim() === 'No record found.')
|| (tr[0].innerText.trim() === 'No matching records found')
|| (tr[0].innerText.trim() === ''))) {
and for this code
$('.customTableInfo').addClass('DisplayNone').removeClass('Display');
$('.customEntries').addClass('DisplayNone').removeClass('Display');
$('.itemPerPageLabel').addClass('DisplayNone').removeClass('Display');
$('.customPaging').addClass('DisplayNone').removeClass('Display');
you can simplify it
$('.customTableInfo ,.customEntries , .itemPerPageLabel ,.customPaging').addClass('DisplayNone').removeClass('Display');
Upvotes: 3