Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 作为jQuery选择器的字符串数组?_Javascript_Jquery - Fatal编程技术网

Javascript 作为jQuery选择器的字符串数组?

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

我有一个字符串数组,这些字符串是有效的jQuery选择器,即页面上元素的ID:

["#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)"})
);