我有两个选择
选项,可以说:
<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>
每当选择类别1
时,子选择
中的所有选项都应禁用,除了那些值以1<开头的选项
,即 sub 1
和 sub 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
});
任何帮助将不胜感激
最佳答案
使用^=
属性匹配。改变
$("#sub > option[value=opt+'%']")
至
$('#sub > option[value^="' + opt + '"]')
这将检查value
属性是否以opt
中的字符串开头。引用:Attribute selectors - CSS | MDN .
关于javascript - 如何在没有 If 语句的情况下执行通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895820/