我有一个有效的jQuery选择器字符串数组(即页面上元素的ID):
["#p1", "#p2", "#p3", "#p4", "#p5"]
我想在jQuery数组中选择带有这些ID的元素。这可能是基本的,但我在网上找不到任何东西。我可以有一个for循环创建一个字符串"#p1,#p2,#p3,#p4,#p5"
然后可以作为单个选择器传递给jQuery,但是不是另一种方式吗?有没有办法将字符串数组作为选择器传递?
编辑:实际上,有an answer out there already。
答案 0 :(得分:47)
好吧,有'加入':
["#p1", "#p2", "#p3", "#p4", "#p5"].join(", ")
编辑 - 额外信息:
可以选择一个元素数组,问题在这里你还没有元素,只有选择器字符串。无论你如何切片,你都必须执行像.getElementById这样的搜索或使用实际的jQuery选择。
答案 1 :(得分:13)
var a = ["#p1", "#p2", "#p3", "#p4", "#p5"];
var s = a.join(", ");
//s should now be "#p1, #p2, #p3, ..."
$(s).whateverYouWant();
答案 2 :(得分:8)
$(foo.join(", "))
怎么样?
答案 3 :(得分:4)
使用array.join方法将它们连接在一起
$(theArray.join(','));
答案 4 :(得分:3)
如果你想让他们单独做某事,还有.each();
在下面的示例中,每次点击都会使其中任何一个变为红色:
var peas = ['#p1','#p2','#p3','#p4','#p5'];
$.each(peas, function(i){
$(peas[i]).click( function(){
$(peas[i]).css({'color':'red'});
});
});
当你将'i'抛入函数参数时,它会适当地找到数组中的值。当你执行'.each()'格式时,格式如下:
$.each(array, function(i){
// any code you wish as long as you have an array selector
//$(array[i]).whatever function
});
一个更大的例子。假设你想要点击红色P,但希望其他ps返回默认颜色。只需制作一系列nonPea和voila!
var peas = ['#p1','#p2','#p3','#p4','#p5']
, nonPeas = ['#p5, #p2, #p3, #p4'
,'#p1, #p5, #p3, #p4'
,'#p1, #p2, #p5, #p4'
,'#p1, #p2, #p3, #p5'
,'#p1, #p2, #p3, #p4']
;
$.each(peas, function(i){
$(peas[i]).click( function(){
$(peas[i]).css({'color':'red'});
$(nonPeas[i]).css({'color':'black'});
});
});
我知道有人肯定想知道每个值数组是否为jquery选择器。希望一切顺利!
答案 5 :(得分:2)
我认为你正在寻找join。
var arr = ["#p1", "#p2", "#p3", "#p4", "#p5"];
$(arr.join(","))
答案 6 :(得分:-1)
更短的:
["#p1", "#p2", "#p3", "#p4", "#p5"].toArray()