3

试图弄清楚如何将通配符概念应用于某些东西,而不是在哪里应用。

现在我有$('.zm_name[rel!="'+keyed+'"]').parent().hide();它会隐藏所有与我正在寻找的键值不完全匹配的东西,这很好用。但是,它仅在键入的值准确时才有效。所以我希望它像它一样keyed*,但任何不等于字符串隐藏的开头。

我试过$('.zm_name[rel^!="'+keyed+'"]').parent().hide();但只得到一个语法错误,我浏览了 api 的 jquery 选择器部分,似乎找不到我正在寻找的确切内容。所以我想知道有没有结合这种方法的实际方法?

4

2 回答 2

3

试试这个

$('.zm_name:not(.zm_name[rel^="'+keyed+'"])').parent().hide();

//或者

$('.zm_name:not([rel^="'+keyed+'"])').parent().hide();​​​​​​​

演示

于 2012-10-01T20:27:02.010 回答
1

我通常远离很长的选择器,因为它们可能会令人困惑和多余。尝试使用以下filter方法:

$('.zm_name').filter(function(){ 
  return !(new RegExp('^'+ keyed)).test(this.rel); 
});
于 2012-10-01T20:31:14.293 回答