我希望按值使用jquery筛选选项, 如果我有:
<select class="generic-widget" id="phone_line" name="phone_line">
<option value=""></option>
<option value="2">71158189</option>
<option value="4">71158222</option>
<option value="3">99199152</option>
<option value="1">98199153</option>
</select>
对于这种情况,我必须显示值为“3”和值=“4”的选项。
使用:
$('#phone_line option[value!="3"]').remove();
我只能过滤一个值,但我需要使用x值
我该怎么做? 感谢。
答案 0 :(得分:5)
如果你要一遍又一遍地重复使用它,创建一个函数是个好主意。下面是您要删除的值的数组参数:
function removeOptions(array) {
for (var i = 0; i < array.length; i++) {
$('#phone_line option[value="' + array[i] + '"]').remove();
}
}
答案 1 :(得分:3)
你需要这样的功能:
function removeOptions(id,array){
str='[value!=""]';
for(i=0;i<array.length;i++){
str += '[value!='+array[i]+']';
}
$('#'+id+' option'+ str ).remove();
}
如果您的阵列中包含您不想删除的选项,请执行以下操作:
var myopts = [3,4];
你只运行:
removeOptions('phone_line', myopts);
干杯!
答案 2 :(得分:2)
首先,我不知道#line
在哪里,但它不在您提供给我们的HTML中。
其次我会使用:
$('#phone_line option[value!=3][value!=5]').remove();
一个选择器中可以有2个条件!
答案 3 :(得分:1)
尝试
$("select[id*='line']").find('option[value!=3], option[value!=5]').remove();
or
$("select[id*='line']").children('option[value!=3], option[value!=5]').remove();
谢谢,
答案 4 :(得分:1)
$('#phone_line option').filter(function(){
return (this.value != 3 && this.value != 4);
}).remove();
答案 5 :(得分:1)
如果您只想显示值为3和4的选项。可以通过简单地完成。
$('#phone_line option').not('option[value="3"],option[value="4"]').remove();
这是demo。
或者您可以使用filter
来避免使用4和3
$('#phone_line option').filter('option[value="3"],option[value="4"] ').remove();
这是demo。
答案 6 :(得分:0)
试试这个
$('#line option[value!=3],option[value!=4]').remove();
答案 7 :(得分:0)
$('#line').find('option[value!=3], option[value!=5]').remove();
如果选项是直接后代,请使用 .children()而不是 .find()