2010-11-04 9 views
2
//Add Row with No data recorded message, when the table is empty///////////////////////////////////////////// 

    $("tbody").each(function() { 
     NoOfColumns = $(this).prev("thead").find("th").length; 

     if ($(this).is(":empty")) { 
      $(this).append("<tr><td class='trTopItem' style='border-top:1px solid silver;background-color:#eeeaf3;' colspan=" + NoOfColumns + ">No Data Recorded</td></tr>"); 
     } 
    }); 

Toute aide serait apréciée, merci.

+0

Avez-vous essayé d'utiliser les outils de développement de Chrome pour déboguer? Est-ce frapper la déclaration 'if', est-ce l'évaluation à vrai etc etc – Psytronic

+0

J'essaie mais il va à la jquery.min.js et je me perds. Merci pour le conseil tho – Amra

+0

Lopez: pour le débogage vous pouvez utiliser la version non-minifiée de jquery. Ce n'est pas trop difficile à comprendre et c'est bon de voir exactement ce qui se passe si vous êtes confus. Si cela aurait aidé dans ce cas ou non, je ne sais pas, car les choses cross-navigateur peuvent être difficiles à obtenir juste en regardant le script. C'est un astuce générale utile. :) – Chris

Répondre

3

Je suppose qu'il s'agit de ce que les navigateurs considèrent comme des éléments vides. Si vous regardez l'exemple que j'ai créé avec jsfiddle, vous remarquerez que les deux premières tables diffèrent seulement sur le fait que l'un des éléments tbody a des espaces et l'autre non.

http://jsfiddle.net/qtjdp/1/

Sur IE ce qui rend le pas message de données à la fois et sur Firefox uniquement sur celui qui a pas d'espace dans la balise.

Vous verrez que j'ai ajouté une instruction alternative if qui est actuellement mise en commentaire. Si vous utilisez ce qu'il fonctionne sur Firefox (et Psytronic me dit dans les commentaires Chrome aussi bien que je ne l'ai pas installé):

if ($(this).children().length==0) 

La raison en est que c'est la vérification des éléments de l'enfant (qui est ce que vous voulez ici), pas seulement le contenu d'aucune sorte.

+0

Fonctionne la même chose sur Chrome que sur FF – Psytronic

+0

Wow, C'est une excellente explication, merci beaucoup. +1 :-) – Amra

+0

@Psytronic: merci de vérifier. Je pensais que ce serait parce que les deux sont assez similaires en termes de scripts d'habitude, mais c'est agréable de confirmer. :) – Chris

Questions connexes