2014-02-20 108 views
0

執行通配符我有兩個select選項,讓說:如何在沒有如果聲明

<select id="main"> 
    <option value="1">category 1</option> 
    <option value="2">category 2</option> 
    ........ 
</select> 

<select id="sub"> 
    <option value="1-1">sub 1</option> 
    <option value="1-2">sub 2</option> 
    <option value="2-3">sub 3</option> 
    <option value="2-4">sub 4</option> 
    ........ 
</select> 

每當category 1選擇,從sub select所有選項應該被禁用,除了那些具有價值與1開始,這是sub 1sub 2

我到目前爲止這樣的代碼:

$('#main').on('change', function() {   
    var opt=this.value.trim();   
    $("#sub > option").attr("disabled", "disabled");      
    $("#sub > option[value=opt+'%']").removeAttr("disabled"); 
           ^I just can't figure how to perform a wild card here 
}); 

任何幫助將不勝感激

回答

3

使用^=屬性匹配。更改

$("#sub > option[value=opt+'%']") 

$('#sub > option[value^="' + opt + '"]') 

這將opt檢查與如果value屬性開始的字符串。參考:Attribute selectors - CSS | MDN

+0

完美!我以前見過這個,但只是不記得它。謝謝! – Baby