jQuery选择器通配符不在哪里

时间:2012-10-01 20:24:47

标签: jquery jquery-selectors

尝试弄清楚如何在不应用的情况下应用通配符概念。

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

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

2 个答案:

答案 0 :(得分:3)

试试这个

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

// OR

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

DEMO

答案 1 :(得分:1)

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

$('.zm_name').filter(function(){ 
  return !(new RegExp('^'+ keyed)).test(this.rel); 
});