JQuery过滤数据属性使用"不像运算符"

时间:2016-10-19 10:59:44

标签: jquery filter

我正在尝试根据不包含所选文本的选项过滤选项。 "不"和#34;含有"工作, - 只是不在一起。

$('#Offices option').filter('[data-faculty!="Europe"]').remove();
// [!] (not) this works - removes all but Europe


$('#Offices option').filter('[data-faculty*="Europe"]').remove();
// [*=] this works - removes all but those options with attributes containing Europe

我希望/假设一个简单的"!"添加会起作用,但它没有。 !*=给出语法错误。 e.g。

$('#Offices option').filter('[data-faculty!*="Europe"]').remove();

我也试过"不是"但我也有语法错误。

有谁知道我怎么做到这一点 - "不包含"?

2 个答案:

答案 0 :(得分:1)

您可以在选择器中使用:not.not()链接

例如删除包含欧洲之外的所有内容:

$("#offices option:not([data-faculty*='Europe']").remove()

$("#offices option").not("[data-faculty*='Europe']").remove()

答案 1 :(得分:1)

您可以使用.filter(fn)功能

$('#Offices option[data-faculty]').filter(function(){
   return $(this).attr('data-faculty')  !== 'Europe'; 
}).remove();

不包含

$('#Offices option[data-faculty]').filter(function(){
   return $(this).attr('data-faculty').indexOf('Europe') == -1;
}).remove();