2010-11-23 39 views
15

鑑於下面的HTML,我需要一個jQuery選擇器,選擇<option>with-stamp類。jQuery選擇<select>的<option>框

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

回答

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

謝謝,首先我以爲我沒有工作,但我看到你改變了我的名字:-) – FFish 2010-11-24 06:32:40

3

您需要檢查只有:selected<option>(因爲.hasClass()回報true如果集合中的元素的任何有類),像這樣:

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

我喜歡PeeHaa's,因爲它使用$(this) – FFish 2010-11-24 06:39:02

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

}); 
+0

有一個`.class`選擇器,但除此之外,`change`事件不會在'