2010-11-23 5 views
15

Étant donné le code HTML ci-dessous, j'ai besoin d'un sélecteur jQuery qui sélectionne le <option> avec la classe with-stamp.jQuery selector pour <select><option> box

<select name="preset_select"> 
    <option selected="selected" value="original">ORIGINAL</option> 
    <option value="large">LARGE</option> 
    <option class="with-stamp" value="medium">MEDIUM</option> 
</select> 

$("select[name=preset_select]").change(function() { 
    // console.log($(this).hasClass("with-stamp")); // all false 
    // console.log($("select[name=preset_select] option").hasClass("with-stamp")); // all true 
}); 

Répondre

21
$("select[name='preset_select']").change(function() { 
    $(this).children(':selected').hasClass('with-timestamp') 
} 
+0

Merci, d'abord je pensais que je ne travaillais pas mais que je vous voyais changé de nom de classe :-) – FFish

+0

Je suis désolé ma mauvaise. Je suis content que vous l'ayez compris :) – PeeHaa

3

Vous devez vérifier que la :selected<option> (depuis .hasClass() retours true si une des éléments du jeu ont la classe), comme ceci:

$("select[name=preset_select] option:selected").hasClass("with-stamp") 
+1

Je préfère PeeHaa car il utilise $ (this) – FFish

2
$("select[name=preset_select] option:selected").hasClass('with-stamp').change(function() { 

}); 
+0

Il y a un sélecteur '.class', mais à part ça, l'évènement' change' ne tirer sur le '