Comment faire cela en utilisant jQuery - document.getElementById («selectlist»). Value

141

Dans jQuery, quel est l'équivalent de document.getElementById("selectlist").value?

J'essaie d'obtenir la valeur d'un élément de la liste de sélection.

Merci.

Tonyf
la source
10
Vous obtenez probablement des votes négatifs, car vos questions peuvent être répondues en quelques secondes sur Google ou en lisant la documentation JQuery.
zombat
53
+1 aux amygdales pour braver les utilisateurs de SO. Sa question est parfaitement valable, quelle que soit la difficulté à résoudre. Davantage de trafic vers SO pour de futures recherches sur ce sujet.
M. Smith
7
Allez les gars - jQuery vaudou n'est pas si facile à apprendre pour un vieil homme comme moi, un développeur de serveur que je suis depuis environ 20 ans - soyez gentils et allez-y doucement avec nous, nouveaux arrivants de jQuery! :-)
marc_s
1
@Boekwurm Ben - il est peut-être courageux, mais vous ne pouvez pas non plus blâmer les utilisateurs de SO. Les gens aiment généralement voir un petit effort de la personne qui pose la question.
zombat
12
Si je me souviens bien, c'était la première chose que je n'ai pas eue avec jQuery. Je pense que c'est une question valable si la vérité est dite, et la notation était sévère. stackoverflow.com/questions/75296/…
James Wiseman

Réponses:

148
$('#selectlist').val();
ChaosPandion
la source
1
Whoa. Vous avez le jackpot LOL.
Jacob Relkin
214

«Equivalent» est le mot ici

Tandis que...

$('#selectlist').val();

...est équivalent à...

document.getElementById("selectlist").value

... il convient de noter que ...

$('#selectlist')

... bien que 'équivalent' ne soit pas la même chose que ...

document.getElementById("selectlist")

... car le premier renvoie un objet jQuery, pas un objet DOM.

Pour obtenir le ou les objets DOM à partir de jQuery, utilisez ce qui suit:

$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0
James Wiseman
la source
1
peut-être un peu tangentiel ici, mais ce serait une excellente info: y a-t-il un moyen d'obtenir l'objet DOM de celui de jQuery? edit : a répondu à ma propre question en edit.
Clayton Hughes
4
J'ai cogné ma tête contre un mur pendant une heure jusqu'à ce que je réalise que getElementById () ne peut pas être remplacé par $ (). Merci beaucoup pour cette réponse!
tricoter
3
@knite - Oui. J'aurais aimé que quelqu'un me l'explique la première fois que j'ai utilisé jQuery.
James Wiseman
1
merci pour l'explication de la dernière partie de l'obtention d'objets DOM dans jquery :).
kailash19
+1 Oldie mais un goodie. J'essayais de comprendre pourquoi Google Maps acceptait un objet DOM mais n'acceptait pas mon objet jQuery. Une recherche rapide sur google m'a conduit ici, pas aux documents jQuery.
TonyG
9

Le chaos est parfait, mais pour ce genre de questions, vous devriez consulter la documentation de Jquery en ligne - elle est vraiment très complète. La fonctionnalité que vous recherchez est appelée «sélecteurs jquery»

Généralement vous le faites $('#ID').val()- le .afterwards peut faire un certain nombre de choses sur l'élément qui est renvoyé par le sélecteur. Vous pouvez également sélectionner tous les éléments d'une certaine classe et faire quelque chose pour chacun d'eux. Consultez la documentation pour quelques bons exemples.

RodH257
la source
9

Cela peut être fait de trois manières différentes, bien qu'elles soient toutes presque identiques

Javascript façon

document.getElementById('test').value

Manière Jquery

$("#test").val()          

$("#test")[0].value             

$("#test").get(0).value
Sayannayas
la source
C'est la meilleure réponse. Je vous remercie!
Carter Medlin
2

Pour ceux qui se demandent si les sélecteurs d'identifiant jQuery sont plus lents que document.getElementById, la réponse est oui, mais pas à cause de l'idée préconçue qu'il recherche dans tout le DOM à la recherche d'un élément. jQuery utilise en fait la méthode native. C'est en fait parce que jQuery utilise d'abord une expression régulière pour séparer les chaînes du sélecteur à vérifier, et bien sûr en exécutant le constructeur:

rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/

Alors que l'utilisation d'un élément DOM comme argument revient immédiatement avec 'this'.

Donc ça:

$(document.getElementById('blah')).doSomething();

Sera toujours plus rapide que cela:

$('#blah').doSomething();
marksyzm
la source
0

Dans certains cas, je ne me souviens pas pourquoi mais $('#selectlist').val()je ne renvoie pas toujours la valeur d'élément correcte, je l'utilise donc à la $('#selectlist option:selected').val()place.

Brett Ryan
la source
Vous pourriez peut-être poster des liens qui le confirment. Je serais surpris cependant. Ce serait un bogue fondamental dans jQuery. Est-il possible que vous utilisiez une version boguée de la bibliothèque?
James Wiseman
Cela aurait pu être James, je pense que cela aurait pu être en 1.3.0, ne semble pas pouvoir être reproduit en 1.3.2, mais cela aurait pu aussi être dans IE6 ou 7 que je n'ai plus installé, je vais voir si je peux trouver la cause originale et la signaler ici.
Brett Ryan