2010-11-23 18 views
15

Dado el siguiente HTML, necesito un selector jQuery que seleccione <option> con la clase .selector jQuery para <select><option> caja

<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 
}); 

Respuesta

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

Gracias, primero pensé que no funcionaba, pero que te vi cambiar mi nombre de clase :-) – FFish

+0

Ay lo siento mal. Me alegro de que lo hayas averiguado :) – PeeHaa

3

Es necesario comprobar sólo el :selected<option> (ya .hasClass() vuelve true si cualquier de los elementos en el conjunto tienen la clase), así:

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

Prefiero PeeHaa porque usa $ (esto) – FFish

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

}); 
+0

Hay un selector '.class', pero además de eso, el evento' change' no fuego en el '