Quelle est la meilleure façon de détecter si un sélecteur jQuery renvoie un objet vide. Si tu fais:
alert($('#notAnElement'));
vous obtenez [object Object], donc la façon dont je le fais maintenant est la suivante:
alert($('#notAnElement').get(0));
qui écrira "indéfini", et vous pouvez donc vérifier cela. Mais cela semble très mauvais. De quelle autre manière existe-t-il?
jquery
jquery-selectors
peirix
la source
la source
this
est beaucoup plus utile quetrue
. Voir ma réponse portant lapresence
méthode de Rails .this
à une variable, je recommanderais de changer l'instruction return en ce que CSharp a.la source
Le sélecteur renvoie un tableau d'objets jQuery. Si aucun élément correspondant n'est trouvé, il renvoie un tableau vide. Vous pouvez vérifier la
.length
collection retournée par le sélecteur ou vérifier si le premier élément du tableau n'est pas défini.Vous pouvez utiliser l' un des exemples suivants dans une instruction IF et ils produisent tous le même résultat. Vrai, si le sélecteur a trouvé un élément correspondant, faux sinon.
la source
.length
moins que le code ne soit chaud. C'est certainement le plus clair avec intention. En outre, il.size()
est obsolète et l'est depuis des années (depuis le 1.8). Je vais juste modifier votre réponse et la supprimer, n'hésitez pas à la rajouter avec une note mais elle est tellement ancienne, je pense que c'est mieux.J'aime faire quelque chose comme ça:
Alors vous pouvez faire quelque chose comme ça:
http://jsfiddle.net/vhbSG/
la source
TypeError: firstExistingElement.doSomething is not a function
. Vous pouvez encapsuler l'intégralité de la variable affectation / test dans un if () et ne faire quelque chose que si un élément est trouvé ....J'aime utiliser
presence
, inspiré de Ruby on Rails :Votre exemple devient:
Je le trouve supérieur à celui proposé
$.fn.exists
car vous pouvez toujours utiliser des opérateurs booléens ouif
, mais le résultat véridique est plus utile. Un autre exemple:la source
Ma préférence, et je n'ai aucune idée pourquoi ce n'est pas déjà dans jQuery:
Utilisé comme ceci:
Ou, comme il semble dans CoffeeScript:
la source
C'est dans la documentation JQuery:
http://learn.jquery.com/using-jquery-core/faq/how-do-i-test-whether-an-element-exists/
la source
Vous voudrez peut-être faire cela tout le temps par défaut. J'ai eu du mal à encapsuler la fonction jquery ou la méthode jquery.fn.init pour le faire sans erreur, mais vous pouvez apporter une modification simple à la source jquery pour ce faire. Vous y trouverez quelques lignes environnantes que vous pouvez rechercher. Je recommande de rechercher la source jquery pour
The jQuery object is actually just the init constructor 'enhanced'
Enfin, vous pouvez obtenir le code source jquery non compressé ici: http://code.jquery.com/
la source