选择要删除的多个选项

时间:2015-08-01 01:07:30

标签: jquery jquery-ui jquery-plugins

我试图从下拉菜单组合列表中删除多个选项。

这是"允许"或者我能做些类似的事情吗?

这有效:

$("#select option[value='51']").remove();

这不起作用:

$("#select option[value='51''127']").remove();

这也不起作用:

$("#select option[value='51, 127']").remove();

2 个答案:

答案 0 :(得分:0)

你可以用这个来代替

$("#select option[value='51'],#select option[value='127']").remove();

检查一个有效的例子 http://jsfiddle.net/abletech/W4Km8/

更新1 这里陈述的另一种方法A cleaner way to select by multiple possible attribute values?

你可以使用

$("#select option[value]").filter('[value="51"],[value="127"]');

更新2

关于那个50列方法,好吧我们必须为那个

创建一个函数
    function removeMultipleOptions(removeList){
var removeString='';
for(var i=0;i<removeList.length - 2 ;i++){
removeString += "#select option[value='"+removeList[i]+"'],";
}
removeString += "#select option[value='"+removeList[i+1]+"']"; //no comma
$(removeString).remove();
}
removeMultipleOptions(['51','127',....]);

这被认为是硬编码的不良做法。但没人判断我们的代码。

答案 1 :(得分:0)

如果您可以先形成一个包含要删除的所有值的数组,那么按以下方式执行删除将非常方便和有效:

$("#select option")

说明:.remove()在jQuery中尽可能高效地找到所有选项节点。之后,过滤完全在javascript中执行,无需发现更多节点。最后/etc/logstash-forwarder.conf执行删除过滤器中剩余的所有剩余节点。

<强> DEMO