2009-06-13 6 views
0

Cela ressemble à une question vraiment fondamentale. Disons que je l'élément formulaire suivantQuelle est la meilleure façon d'obtenir l'élément DOM sous-jacent par ID dans jQuery?

<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.

Je ne pense pas que 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 a-t-il un sélecteur qui me permettra d'accéder directement à l'élément DOM sans avoir à faire un "appel supplémentaire" pour obtenir (0)?

Je demande parce que je viens du prototype où je peux dire:

var selectedIndex = $('mySelect').selectedIndex; 
+0

N'appelle pas à $ ("# mySelect"). SelectedIndex fonctionne-t-il? – shahkalpesh

+0

Désolé, je le reprends. Je l'ai essayé et ça ne marche pas. – shahkalpesh

Répondre

3

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 semblable à un tableau et expose les éléments DOM réels à travers elle.

1

$("#mySelect").val() fera l'affaire.

0
$("#mySelect option:selected").val() 
Questions connexes