jQuery: Quelle est retournée si $ ( « id # ») ne correspond pas à quoi que ce soit?
-
05-09-2019 - |
Question
Ce qui est retourné si $ ( '# id') ne correspond pas à quoi que ce soit? Je pensais que ce serait nul ou faux ou quelque chose de similaire si j'ai essayé de vérifier comme ceci:
var item = $('#item');
if (!item){
...
}
Mais cela ne fonctionne pas.
La solution
Vous pouvez trouver le nombre d'éléments appariés en utilisant:
$('selector').length
Pour vérifier si aucun élément ont été appariés, utilisez:
var item = $('#item');
if (item.length == 0) {
// ...
}
Autres conseils
Alors que $('selector').length
est idéal pour découvrir combien d'objets vos matchs de sélection, en fait complètement son unnecesary. La chose à propos de jQuery est que toutes les fonctions sélecteur à base utilisent une longueur interne, vous pouvez donc faire $(selector).hide()
(ou autre) et il ne prend aucune mesure pour un ensemble vide.
Un objet jQuery qui ne contient pas de nœuds DOM.
Vous devriez pouvoir utiliser
var item = $('#item');
if (!item[0]){
...
}
pour votre contrôle d'existence.
un alias de l'attribut de longueur est la méthode size (). Ainsi, vous pouvez également interroger essentiellement:
$ ( "sélecteur"). Size ()
pour voir combien d'éléments correspondent.