2010-03-10 8 views
0

que tout ce que vous savezsélectionnez par id dans jquery

$("#ID") 

retourne l'élément ayant ID.

mais ce code retourne toujours même s'il n'y a pas d'élément.

alert($("#htrBuyerCouponNotice")); 
alert(document.getElementById("htrBuyerConponNotice")); 

dans ce cas.

ces deux résultats de ligne sont différents. Je veux vérifier s'il y a un élément à htrBuyerCouponNotice.

document.getElementByID Renvoie la valeur nulle s'il n'y a pas d'élément.

+0

désolé mon pauvre anglais –

+2

Ce n'est pas à cause de la faute de frappe dans Coupon/Conpon, est-il? :) – deceze

Répondre

3

Vous pouvez vérifier la propriété length de l'objet jQuery pour déterminer le nombre d'éléments adaptés, par exemple:

alert($(selector).length); 

Vous pouvez l'utiliser directement sur if déclarations par exemple:

var $el = $(selector); 

if ($el.length) { // only 0 will coerce to false 
    // ... 
} 

Mais la plupart du temps, vous ne avez pas vraiment besoin de savoir si le sélecteur correspond éléments ou non, parce que les méthodes jQuery intégrées seront simplement ignorées, par exemple:

$('#nonExistent').hide(); 

L'instruction ci-dessus ne provoquera aucune erreur même si l'élément n'a pas été trouvé.

jQuery a aussi la méthode size, mais je vous recommande d'utiliser la propriété length directement car il est accessible au public, la méthode size est un peu plus lent, car il est seulement une fonction qui retourne la valeur de la propriété length.

+0

merci beaucoup! –

0

Essayez:

$("#htrBuyerCouponNotice").size() 

Ce sera nul s'il n'y a pas de nœuds avec cet identifiant, 1 si.

1

parce que jQuery retourne une liste d'éléments sélectionnés, s'il n'y a pas d'éléments, vous obtenez toujours un retour - sa juste une liste vide.

chèque de $ (« # someID ») de longueur -. Devrait fonctionner si je me souviens corretly

1

Lors de la sélection des éléments, jQuery renvoie toujours un ensemble d'éléments correspondant. Dans votre cas, $('#htrBuyerCouponNotice') renvoie probablement un tableau vide. Au lieu de cela, vérifiez $('#htrBuyerCouponNotice').length.

Andrew

Questions connexes