62 votes

jQuery Sélecteur d'ID ("#id") Renvoie un Tableau

J'utilise jQuery v1.6.1 en mode noConflict.

Je suis à l'aide de sélecteurs d'id comme $j("#divID").value pour obtenir les valeurs des éléments stockés.

Malheureusement, $j("#inputID") est de retour d'une liste de les itmes, donc je dois utiliser $j("divID")[0].value pour obtenir la valeur de l'objet. L' [0] me semble inutile, car il n'existe, par définition, un seul élément html avec tout le id donné.

Est-ce le moyen le plus approprié pour obtient des valeurs à partir d'une IDed objet? Ou est-il un meilleur moyen?

Merci!

108voto

jfriend00 Points 152127

$j("#divID").val() fonctionnent très bien.

Par le jQuery documentation, .val() retourne la valeur du premier élément de l'ensemble des éléments qui correspondent.

Il est intéressant de comprendre conceptuellement comment travaille jQuery afin de voir pourquoi cela fonctionne de cette façon. Le résultat de tout le sélecteur de requête est un objet jQuery. C'est que l'objet jQuery qui contient la multitude de méthodes jQuery offre. .val() est l'une de ces méthodes sont des choses comme .fadeIn(), .hide(), etc... Ces méthodes ne sont pas des méthodes sur un objet DOM, mais les méthodes d'un objet jQuery. Parce que jQuery objets sont d'usage général et peut contenir 0, 1 ou plusieurs objets DOM dans leur tableau interne, vous obtenez le même objet jQuery arrière à partir d'un sélecteur jQuery appel si les résultats sont 0, 1 ou plusieurs objets DOM en elle.

Ainsi, $j("#divID") qui ne contient qu'un seul objet renvoie au même type d'objet que $j(".rows") qui peuvent contenir des centaines d'objets DOM. Cela simplifie grandement jQuery programmation parce que vous n'avez pas à faire les choses différemment selon le nombre d'objets en revenir à partir du sélecteur de requête.

Lorsque vous vous référez à l' $j("divID")[0], vous avez accès à l'objet jQuery interne de tableau d'objets DOM (qui a été renseignée sur le sélecteur de requête) et récupérer le premier objet DOM dans ce tableau. À ce stade, vous aurez un objet DOM, pas un objet jQuery et vous pouvez utiliser DOM normal de méthodes ou d'attributs sur elle. Parfois c'est nécessaire (pour aller chercher le réel de l'objet DOM), mais généralement, il est plus facile de simplement utiliser les méthodes jQuery fournit sur l'objet jQuery. Il y a beaucoup d'avantages à les utiliser comme vous pouvez enchaîner plusieurs demandes de la plupart des méthodes, et il va se répéter sur tous les objets DOM internes tableau pour vous automatiquement.

Par exemple, vous vous disant ceci: $j("rows-even").hide() et 20 lignes avec cette classe, alors tous d'entre eux chaque être opéré par le hide() méthode sans plus de code que cela. De vous pourrait chaîne de plusieurs méthodes comme ceci: $j("rows-even").slideUp().slideDown(). Dans ce cas, vous êtes en cours d'exécution d'une animation et jQuery va de la chaîne de ces deux animations ensemble, automatiquement à partir de la deuxième, lorsque la première se termine. Il est très utile dans de nombreuses circonstances, et peut sauver une tonne de code sur ce qui aurait normalement dû être écrite à l'aide de la plaine de JS.

3voto

ShankarSangoli Points 45345

$j("#divID") renvoie un jQuery objet. Afin d'obtenir la valeur de l'élément sélectionné, vous devez appeler son val méthode pour obtenir de la valeur.

Utiliser $j("#divID").val();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X