2010-02-28 6 views
3

Étant donné le javascript suivant:Comment utiliser JQuery pour trouver l'index sélectionné sur un objet de sélection DOM?

function foo(selectControl) { ... } 

et le code html suivant:

<select onchange="foo(this)"> ... 

En JQuery, comment puis-je simuler les fonctionnalités suivantes:

$('#selectList :selected').text(); 

quand au lieu, je passe autour de l'objet DOM réel. Je sais que je peux envelopper le DOM objet et appeler des opérations comme

$(selectControl).val(); 

mais je spécifiquement demander comment reproduire le mécanisme de sélection de chaîne de JQuery:

$('#selectList :selected') 

Répondre

3

Vous pouvez utiliser l'argument de contexte de la fonction jQuery:

$(':selected', selectControl).text(); 

Vérifiez un exemple here.

Bien que je vous recommande de lier les événements par programme:

$('#selectID').change(function() { 
    //... 
}); 
1

Vous vous demandez comment faire nativement, sans jQuery? Je crois que ce serait:

selectControl.options[selectControl.selectedIndex] 

puis .value ou .text hors de cela.

+0

Y at-il vraiment un attribut "text" sur les balises '

0

Disons que vous prenez l'élément de sélection:

var select = document.getElementById('selectId'); 

Vous pouvez obtenir le texte de l'option sélectionnée comme ceci:

var text = select.options[select.selectedIndex].innerHTML; 

(Oui qui obtient le HTML, mais vous pouvez creuser et obtenez le contenu du nœud de texte si vous le souhaitez.)

Questions connexes