2011-03-06 115 views
0

下面是我想修改代码:jQuery的阵列混乱

a[href*="google"] 

现在我想要做的就是添加多个关键字,如谷歌,雅虎等 我试图做这样和这个工作精细:

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

但是现在我想从阵列的数据,例如:

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

什我现在应该写吗?与代码混淆。 :(

这些不工作:

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

回答

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(','); 
+0

你能解释一下吗? – cute 2011-03-06 11:28:01

+0

它创建一个包含选择器'a [href * = ELEMENT]'的数组。然后它使用分隔符','连接数组元素 – ThiefMaster 2011-03-06 12:42:12

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(', '); 

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