考虑下面的选择
<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>
如果我想过滤选项并删除值为BB-44的行,我可以这样做:
$('#phone_line option').filter(' option[value="BB-44"] ').remove();
如果我想删除其值以AA开头的行?我可以用以下各项做到:
$("#phone_line > option").each(function () { if (this.value.substring(0,2) === 'AA') { $("#phone_line option[value='" + this.value +"']").remove(); } });
但我可以使用过滤器(一行吗?!).代码:
解决方法
使用属性以选择器开头就可以了
$('#phone_line option[value^="AA"]').remove();
参考:Attribute Starts With Selector [name^=”value”]
对于更复杂的过滤使用过滤器(功能)
$("#phone_line > option").filter(function () { return this.value.substring(0,2) === 'AA'; }).remove();