Obtenez de l'indice de l'option sélectionnée avec jQuery
Je suis un peu confus sur la façon d'obtenir un indice d'une option sélectionnée à partir d'un code HTML <select>
élément.
Sur cette page il y a deux méthodes décrites. Toutefois, les deux sont toujours retourner -1
. Voici mon code jQuery:
$(document).ready(function(){
$("#dropDownMenuKategorie").change(function(){
alert($("#dropDownMenuKategorie option:selected").index());
alert($("select[name='dropDownMenuKategorie'] option:selected").index());
});
});
et en html
(...)
<select id="dropDownMenuKategorie">
<option value="gastronomie">Gastronomie</option>
<option value="finanzen">Finanzen</option>
<option value="lebensmittel">Lebensmittel</option>
<option value="gewerbe">Gewerbe</option>
<option value="shopping">Shopping</option>
<option value="bildung">Bildung</option>
</select>
(...)
Pourquoi ce comportement? Est-il une chance que le select
n'est pas "prêt" au moment de l'attribution de son change()
méthode? En outre, la modification de .index()
à .val()
est de retour la valeur de droite, c'est donc ce qui me confond encore plus.
- Une question aussi ancienne, mais le vrai problème est le
[name=]
utilisés lors de la sélection aid
sur elle. Le[0].selectedIndex
etoption:selected
-réponses ci-dessous sont à la fois ok.
Vous devez vous connecter pour publier un commentaire.
La première des méthodes semblent fonctionner dans les navigateurs que j'ai testé, mais les balises d'option n'a pas vraiment d'correspondent à des éléments réels dans tous les navigateurs, de sorte que le résultat peut varier.
Suffit d'utiliser la
selectedIndex
propriété de l'élément DOM:Mise à jour:
Depuis la version 1.6 de jQuery a la
prop
méthode qui peut être utilisée pour lire les propriétés:[0]
?selectedIndex
de la propriété. L'ajout de[0]
convertit l'objet jquery pour un objet javascript qui a leselectedIndex
de la propriété. Cet exemple ne fonctionnera pas sans[0]
attr
méthode permet de lire la propriété dans les versions antérieures à la 1.6, mais pas à partir de cette version.selectedIndex
ne pas repartir de 0 avec la première option?selectedIndex
propriété est en partant de zéro. J'ai vérifié la documentation et même essayé moi-même pour être vraiment sûr à 100% sur ce.prop
méthode -- il m'a fait passé un hic, où d'autres "solutions", qui d'ailleurs ne fonctionne pasBonne façon de résoudre ce problème en Jquery manière
[0]
de l'OP préféré de réponse et comme un python dev, je peux vraiment apprécier la lisibilité de cette réponse.J'ai un peu différente de la solution en fonction de la réponse par user167517. Dans ma fonction, je suis en utilisant une variable pour l'id de la zone de sélection, je suis ciblage.
L'indice est retourné avec:
Vous pouvez utiliser le
.prop(propertyName)
fonction pour obtenir une propriété à partir du premier élément de l'objet jQuery.Cela rend votre code dans le jQuery royaume et évite également une autre option de l'aide d'un sélecteur de trouver l'option sélectionnée. Vous pouvez ensuite restaurer en utilisant la surcharge:
essayer cette
selectedIndex est un JavaScript Sélectionnez la Propriété. Pour jQuery vous pouvez utiliser ce code:
Vous pouvez obtenir l'indice de la zone de sélection à l'aide de : .prop() de JQuery
Vérifier :