如何在没有If语句的情况下执行通配符

时间:2014-02-20 00:43:52

标签: javascript jquery html select

我有两个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的{​​/ 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
});

非常感谢任何帮助

1 个答案:

答案 0 :(得分:3)

使用^=属性匹配。变化

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

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

这将检查value属性是否以opt中的字符串开头。参考:Attribute selectors - CSS | MDN