web-dev-qa-db-fra.com

Déterminer si jQuery n'a trouvé aucun élément

J'utilise les sélecteurs de jQuery, en particulier id selector:

$("#elementId")...

Comment déterminer si jQuery a trouvé l'élément ou non? Même si l'élément avec l'identifiant spécifié n'existe pas, l'instruction suivante me le donne: [object Object]

alert($("#idThatDoesnotexist"));
116
Bardock

$('#idThatDoesnotexist').length est ce que vous recherchez. (S'il ne trouve rien, cela va === 0.) Votre déclaration conditionnelle devrait donc probablement être:

if ($ ('# id'). length) {/ * code si trouvé * /} sinon {/ * code si non trouvé * /}

Vous obtenez un objet renvoyé par cette alerte car jQuery retourne (presque) toujours l'objet "jQuery" lorsque vous l'utilisez, qui encapsule les éléments trouvés par jQuery qui permettent le chaînage de méthodes.

178
futuraprime

Futuraprime a raison, mais vous pouvez raccourcir votre syntaxe en procédant comme suit:

if ($("#id").length) {
   //at least one element was found
} else {
   //no elements found
}
26
John Hartsock
!$.isEmptyObject($.find('#id'))

Cela retournera true si l'élément existe et false sinon.

11
Spas
$('#my_selector').length > 0 
$('#my_selector').get(0) !== undefined
$('#my_selector')[0] !== undefined

Ceci est la base, maintenant faites ce que vous voulez.

7
Blackjoker