2010-03-04 5 views
2

Je veux vérifier si un corps de table (tbody) est vide en utilisant jQuery. Jusqu'à présent, je l'ai essayé quelque chose comme:Vérifie si un élément est vide après avoir utilisé .append

$("#searchTable tbody").is(":empty") 

Mais cela ne fonctionne pas. D'autres idées?

HTML Exemple

<table id="searchTable" cellpadding="0" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th>No.</th> 
      <th><a href="#">Status</a></th> 
      <th><a href="#" class="asc">Category</a></th> 
      <th><a href="#" class="desc">Title</a></th> 
      <th><a href="#" class="desc">Last Used</a></th> 
      <th><a href="#" class="desc">URL</a></th> 
      <th style="width: 96px;">Actions</th> 
     </tr> 
    </thead> 
    <tbody></tbody> 
</table> 

Je veux vérifier si quelque chose a été ajouté à tbody; sinon, alors alerter quelque chose.

+0

En quoi cela ne fonctionne-t-il pas? Pourrions-nous voir un échantillon du HTML? – Matchu

Répondre

8

Vous pouvez essayer quelque chose comme

$('#searchTable tbody').children().length; 

qui sera 0 si tbody est vide (n'a pas d'enfant).

+0

C'est exactement ce que '.is (": empty ")' fait, non? Ou les nœuds de texte ne sont-ils pas considérés comme des enfants? L'erreur de l'OP est plus probable dans le flux que dans le sélecteur ': empty' qui ne fait pas correctement son travail. – Matchu

+0

ne fonctionne pas .... – user253530

+1

Juste essayé, et .children(). Longueur ne compte pas les nœuds de texte. Si vous appliquez ('text'), alors .children(). Length donnera zéro, alors que si vous ajoutez (' text'), alors children(). Length en donnera un. Dans les deux cas, .is (': vide') renvoie false. Ça a marché pour moi, comment cela ne fonctionne-t-il pas exactement pour vous? "Ne pas travailler ..." n'est pas vraiment utile. – Bob

1

Si l'élément n'est pas trouvé, il retournera aussi faux. Vérifiez que l'élément est présent et qu'il est sélectionnable à l'aide de votre sélecteur.

Questions connexes