Quelle est la meilleure façon d'obtenir l'élément DOM sous-jacent par ID dans jQuery?
Question
Cela ressemble à une question vraiment fondamentale. Disons que je l'élément de formulaire suivant
<select id="mySelect">
...
En utilisant jQuery, disons que je veux l'obtenir par ID afin que je puisse accéder directement à l'un de ses attributs comme selectedIndex.
ne pense pas Je peux utiliser
var selectedIndex = $("#mySelect").selectedIndex;
parce que le sélecteur # retourne un tableau des éléments. Si je veux accéder à la sélection fait élément DOM, alors je dois appeler
var selectedIndex = $("#mySelect").get(0).selectedIndex;
Est-ce exact? Y at-il un sélecteur qui me laisser directement à l'élément DOM sans avoir à faire un « appel supplémentaire » pour obtenir (0)?
Je demande parce que je viens de Prototype où je peux dire:
var selectedIndex = $('mySelect').selectedIndex;
La solution
Il y a plusieurs façons jQuery pour obtenir la valeur de la <select>
qui ne vous obligent pas à accéder à l'élément DOM réel. En particulier, vous pouvez simplement le faire pour obtenir la valeur de l'option sélectionnée:
$('#mySelect').val();
Parfois, cependant, vous ne souhaitez accéder à un attribut DOM particulier pour une raison quelconque.
Alors que la syntaxe .get(0)
fournie est correcte, il est également possible sans l'appel de fonction:
$("#mySelect")[0].selectedIndex;
Une collection jQuery se comporte comme un objet en forme de matrice et expose les éléments DOM réels à travers elle.
Autres conseils
$("#mySelect").val()
fera l'affaire.
$("#mySelect option:selected").val()