2010-04-19 9 views
8

Comment dois-je comprendresélecteurs de jQuery pour sélectionner/options: sélectionner

$("select option:selected") 

dans le code suivant?

(prise de here)

$("select").change(function() { 
    ... 
    $("select option:selected").each(function() { 
     ... 
    }); 
    ... 
}) 

Est-il toutes les options sélectionnées dans tout sélectionne dans le document?

Est-ce lié d'une manière ou d'une autre à la sélection actuelle, $ (this)?

Répondre

14

Oui, il se référera à toutes les options sélectionnées dans toutes les sélections. Si vous voulez juste regarder la actuelle, sélectionnez, vous pouvez faire quelque chose comme ceci:

$("select").change(function() { 
    ... 
    $(this).find("option:selected").each(function() { 
     ... 
    }); 
    ... 
}) 
+0

Merci beaucoup! –

1

Il est des options sélectionnées de document entier. Vous pouvez utiliser find pour sélectionner seulement de $(this)

0

$("select") trouvera tous les éléments de sélection dans le document.

et à l'intérieur de l'événement changement que vous pouvez donner

$(this).find("option:selected") 

pour obtenir toute l'option sélectionnée pour l'élément de sélection en cours.

Votre instruction va chercher toutes les options sélectionnées pour tous les éléments sélectionnés dans le document.

0

Oui, le code est correct!

Est-ce que toutes les options sélectionnées dans toutes les options sont sélectionnées dans le document?

Oui, c'est le cas.

Est-il en quelque sorte lié à l'actuel select, $ (this)?

Oui, $(this) est associé à l'élément actuel.

Le code suivant itère sur toutes les options de toutes les boîtes de sélection qui sont sélectionnées:

$("select option:selected").each(function() { 
    ... 
}); 

Par conséquent, vous pouvez faire:

$("select").change(function() { 
    ... 
    $(this).find("option:selected").each(function() { 
     ... 
    }); 
    ... 
}) 
0

$("select option:selected") choisira un élément qui est un option que a l'attribut selected, qui est un enfant d'un élément select. Il trouvera toutes les options sélectionnées sur la page. Il n'est pas lié à l'élément cliqué $(this) - si vous le souhaitez, utilisez .find() comme suit: $(this).find('option:selected').

.each() puis itère sur chaque option sélectionnée sur la page faire quelque chose avec chaque élément.