jquery过滤一个select,其选项包含一些字符串

Ali*_*ahi 7 jquery jquery-selectors

考虑下面的选择

<select id="phone_line" name="phone_line">
    <option value=""></option>
    <option value="BB-11">Line 1</option>
    <option value="AA-22">Line 2</option>
    <option value="AA-33">Line 3</option>
    <option value="BB-44">Line 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如果我想过滤选项并删除带有值的行,BB-44我可以这样做:

$('#phone_line option').filter(' option[value="BB-44"] ').remove();
Run Code Online (Sandbox Code Playgroud)

如果我想删除它自己的价值线开始AA?我可以用以下各项做到:

$("#phone_line > option").each(function () {    
    if (this.value.substring(0, 2) === 'AA') {
        $("#phone_line option[value='" + this.value +"']").remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

但我可以使用过滤器(一行吗?!).代码:

http://jsfiddle.net/mpp4emd1/

cha*_*tfl 11

使用属性starts with选择器将执行此操作

$('#phone_line option[value^="AA"]').remove();
Run Code Online (Sandbox Code Playgroud)

参考:属性从选择器开始[name ^ ="value"]

DEMO

用于更复杂的过滤使用 filter(function)

$("#phone_line > option").filter(function () {    
   return this.value.substring(0, 2) === 'AA';
}).remove();
Run Code Online (Sandbox Code Playgroud)


rdu*_*bya 5

你可以做到 $("#phone_line option").filter('[value^="AA"]').remove();