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

标签 javascript jquery html 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>

每当选择类别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
});

任何帮助将不胜感激

最佳答案

使用^=属性匹配。改变

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

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

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

关于javascript - 如何在没有 If 语句的情况下执行通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895820/

相关文章:

jquery - 框架内元素的选择器(具有相同的原点)

javascript - JSON.解析 : unexpected non-whitespace character after JSON data

javascript - Drupal block View 执行 Javascript 函数

javascript - Perfect-scrollbar onload 滚动到底部并使用无限滚动

html - 用线连接 div 以表示层次结构的最佳方式是什么?

jquery - 如何使用 HTML/CSS 使按钮可点击?它需要与图像上的标题一起居中

javascript - 根据媒体是播放还是暂停来更改按钮的文本?

javascript - 在 Javascript 中更改日期时区?

javascript - 无法在 mouseup 事件中删除元素

javascript - 宏伟的弹出窗口不起作用