J'essaie d'appeler une fonction uniquement si un élément HTML est vide, en utilisant jQuery.
Quelque chose comme ça :
if (isEmpty($('#element'))) {
// do something
}
J'essaie d'appeler une fonction uniquement si un élément HTML est vide, en utilisant jQuery.
Quelque chose comme ça :
if (isEmpty($('#element'))) {
// do something
}
if ($('#element').is(':empty')){
//do something
}
Pour plus d'informations, voir http://api.jquery.com/is/ et http://api.jquery.com/empty-selector/
EDIT :
Comme certains l'ont souligné, l'interprétation d'un élément vide par le navigateur peut varier. Si vous souhaitez ignorer les éléments invisibles tels que les espaces et les sauts de ligne et rendre l'implémentation plus cohérente, vous pouvez créer une fonction (ou simplement utiliser le code qu'elle contient).
function isEmpty( el ){
return !$.trim(el.html())
}
if (isEmpty($('#element'))) {
// do something
}
Vous pouvez également en faire un plugin jQuery, mais vous avez compris l'idée.
@Corneliu a raison. J'ai posté une réponse ci-dessous qui prend cela en considération. C'était une source majeure de frustration pour moi sur un projet récent.
Une version légèrement plus comprimée peut tirer parti de la fragilité de la chaîne vide : if(!$.trim($("selector").html())
Je ne pense pas qu'ils les considèrent comme des "éléments", mais comme des nœuds, ce qui est correct selon l'OMI. Vous pourriez également faire if($("selector").children().length === 0)
ou if($("selector > *").length === 0)
.
Notez que $.children()
ne renvoie pas les noeuds de texte ou de commentaire, ce qui signifie que cette solution ne vérifie que si l'élément est vide de éléments . Si un élément qui ne contient que du texte ou des commentaires devrait pas est considéré comme vide pour vos besoins, alors vous devriez utiliser l'une des autres solutions.
+1 J'ai utilisé votre approche dans un fichier jQuery filter
car je ne voulais pas utiliser jQuery dans la fonction, sauf si cela était nécessaire.
Si je considère que les espaces blancs sont vides <div class="results"> </div>
cette déclaration retournera faux. jsfiddle.net/ytliuSVN/0pdwLt46
Tout à fait d'accord avec @Nikolay, ce n'est pas utile pour ma situation spécifique mais je m'en souviendrai pour l'avenir !
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
$('#elem').text().match(/\S/) || alert('empty');