Comment vérifier l'existence d'un élément dans jQuery ?
Le code actuel que j'ai est le suivant :
if ($(selector).length > 0) {
// Do something
}
Existe-t-il une manière plus élégante d'aborder ce problème ? Peut-être un plugin ou une fonction ?
Oui !
jQuery.fn.exists = function(){ return this.length > 0; }
if ($(selector).exists()) {
// Do something
}
Ceci est en réponse à : [Podcast Herding Code avec Jeff Atwood][1]
Si vous avez utilisé
jQuery.fn.exists = function(){return ($(this).length > 0);}
if ($(selector).exists()) { }
vous laisseriez entendre que le chaînage est possible alors qu'il ne l'est pas.
Ce serait mieux :
jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }
Ou encore, [dans la FAQ][1] :
if ( $('#myDiv').length ) { /* Do something */ }
Vous pouvez également utiliser la méthode suivante. S'il n'y a pas de valeurs dans le tableau d'objets jQuery, la récupération du premier élément du tableau renverra un message indéfini.
if ( $('#myDiv')[0] ) { /* Do something */ }
[1] : http://learn.jquery.com/using-jquery-core/faq/how-do-i-test-whether-an-element-exists/