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 a id sur elle. Le [0].selectedIndex et option:selected -réponses ci-dessous sont à la fois ok.
InformationsquelleAutor Valentino Ru | 2012-11-26