jquery数组混淆

时间:2011-03-06 11:21:28

标签: jquery

以下是我要修改的代码:

a[href*="google"]

现在我要做的是添加多个关键字,例如google,yahoo等。 我试过这样做,这很好用:

a[href*="google"],[href*="yahoo"]

但现在我正试图从数组中获取数据,例如:

var array = ["google",yahoo","etc"]

我现在应该写什么?对代码感到困惑。 :(

这些不起作用:

1. a[href*=array]    
2. a[href*=[array]]

2 个答案:

答案 0 :(得分:1)

您需要创建一个这样的jQuery选择器:

a[href *= "<first term>"], a[href *= "<second term>"], a[href *= "..."]

您可以使用map和join动态创建此选择器。像下面的代码应该工作:

var words = ["google", "yahoo", ...], terms, selector;

terms = $.map(words, function() {
    return 'a[href *="' + this + '"]';
});

selector = terms.join(', ');

map获取单词数组的每个元素并创建选择器的每个部分(即在选择器语法中包装单词)然后我们将它们与逗号连接在一起以创建jQuery选择器。

答案 1 :(得分:0)

您不能使用快捷方式。但您可以动态构建选择器:

var array = ['google', 'yahoo', 'etc'];
var selectorParts = [];
for(var i = 0; i < array.length; i++) {
    selectorParts.push('a[href*=' + array[i] + ']');
}
var selector = selectorParts.join(',');