Селектор jQuery для <select>'s <option>box - PullRequest
18 голосов
/ 24 ноября 2010

Учитывая приведенный ниже HTML, мне нужен селектор jQuery, который выбирает <option> с классом with-stamp.

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

Ответы [ 3 ]

27 голосов
/ 24 ноября 2010
$("select[name='preset_select']").change(function() {
    $(this).children(':selected').hasClass('with-timestamp')
}
3 голосов
/ 24 ноября 2010

Вам нужно проверить только :selected <option> (поскольку .hasClass() возвращает true, если любой элементов в набореесть класс), вот так:

$("select[name=preset_select] option:selected").hasClass("with-stamp")
2 голосов
/ 24 ноября 2010
$("select[name=preset_select] option:selected").hasClass('with-stamp').change(function() { 

}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...