Javascript 作为jQuery选择器的字符串数组?
我有一个字符串数组,这些字符串是有效的jQuery选择器,即页面上元素的ID:Javascript 作为jQuery选择器的字符串数组?,javascript,jquery,Javascript,Jquery,我有一个字符串数组,这些字符串是有效的jQuery选择器,即页面上元素的ID: ["#p1", "#p2", "#p3", "#p4", "#p5"] 我想将具有这些ID的元素选择到jQuery数组中。这可能是最基本的,但我在网上找不到任何东西。我可以有一个for循环,它创建一个字符串p1、p2、p3、p4、p5,然后作为一个选择器传递给jQuery,但是没有其他方法吗?难道没有一种方法可以将字符串数组作为选择器传递吗 编辑:事实上,有。嗯,有“加入”: ["#p1", "#p2", "#p3
["#p1", "#p2", "#p3", "#p4", "#p5"]
我想将具有这些ID的元素选择到jQuery数组中。这可能是最基本的,但我在网上找不到任何东西。我可以有一个for循环,它创建一个字符串p1、p2、p3、p4、p5,然后作为一个选择器传递给jQuery,但是没有其他方法吗?难道没有一种方法可以将字符串数组作为选择器传递吗
编辑:事实上,有。嗯,有“加入”:
["#p1", "#p2", "#p3", "#p4", "#p5"].join(", ")
编辑-额外信息:
可以选择元素数组,问题是您还没有元素,只有选择器字符串。无论以何种方式分割,都必须执行.getElementById之类的搜索,或者使用实际的jQuery select。尝试以下方法:
使用array.join方法将它们连接在一起
$(theArray.join(','));
我想你在找我 $foo.join怎么样?更短:
["#p1", "#p2", "#p3", "#p4", "#p5"].toString()
正式回答你的问题:用一句话:
//If this is only one use variable you can use
$(['#p1','#p2','#p3','#p4','#p5'].join(',')).methodToUse();
//if you DO need it as a variable you can
var joined = ['#p1','#p2','#p3','#p4','#p5'].join(',');
$(joined).methodsToUse();
如果你想让他们单独做某件事,那么还有
在下面的示例中,每次p ID单击都会使其中任何一个变为红色:
var peas = ['#p1','#p2','#p3','#p4','#p5'];
$.each(peas, i => {
$(peas[i]).click(() => {
$(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为红色,但希望其他P返回默认颜色。只需制作一个函数,从数组中删除所选ID,瞧
var peas = ['#p1','#p2','#p3','#p4','#p5'],
poppy=(v,i)=>peas.toString().replace(`,${v[i]}`,'').replace(`${v[i]},`,'');
(// get each pea index
$.each(peas,i=>///funciton(i){ code inside}
(//set up each individual index's functions
$('.peastock').append(`<p id="p${[i+1]}">I am ${peas[i]}</p>`),
$(peas[i]).click(()=>(
$(peas[i]).css({"color":"red","background-color":"rgba(128,0,0,0.1)"}),
$(poppy(peas,i)).css({'color':'black','background-color':'rgba(255,255,255,0.2)'}))))),
$('.peastock').append(`
<div id="ree">ES6 isnt suitable for all of jQuery's usage!</div>
<div>Since some functions inside of jQuery's methods dont require 'this' or 'return'</div>
<div>You can learn this by going <a href="https://www.w3schools.com/Js/js_es6.asp">here</a></div>
`),
$("*").css({"margin":"0 auto","padding":"1%"}),
$("* .peastock, .peastock, .peastock *").css({"background-color":"rgba(128,0,0,0.1)"})
);
我知道一定有人想知道作为jquery选择器的每个值数组。希望一切顺利
资料来源:
呵呵,我就知道我在这该死的iphone上会太慢:-谢谢你抽出时间!正是这样。非常感谢。
$.each(array, function(i){
// any code you wish as long as you have an array selector
//$(array[i]).whatever function
});
var peas = ['#p1','#p2','#p3','#p4','#p5'],
poppy=(v,i)=>peas.toString().replace(`,${v[i]}`,'').replace(`${v[i]},`,'');
(// get each pea index
$.each(peas,i=>///funciton(i){ code inside}
(//set up each individual index's functions
$('.peastock').append(`<p id="p${[i+1]}">I am ${peas[i]}</p>`),
$(peas[i]).click(()=>(
$(peas[i]).css({"color":"red","background-color":"rgba(128,0,0,0.1)"}),
$(poppy(peas,i)).css({'color':'black','background-color':'rgba(255,255,255,0.2)'}))))),
$('.peastock').append(`
<div id="ree">ES6 isnt suitable for all of jQuery's usage!</div>
<div>Since some functions inside of jQuery's methods dont require 'this' or 'return'</div>
<div>You can learn this by going <a href="https://www.w3schools.com/Js/js_es6.asp">here</a></div>
`),
$("*").css({"margin":"0 auto","padding":"1%"}),
$("* .peastock, .peastock, .peastock *").css({"background-color":"rgba(128,0,0,0.1)"})
);