代码之家  ›  专栏  ›  技术社区  ›  montrealist

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

  •  31
  • montrealist  · 技术社区  · 17 年前

    ["#p1", "#p2", "#p3", "#p4", "#p5"]
    

    "#p1,#p2,#p3,#p4,#p5"

    an answer out there already .

    7 回复  |  直到 9 年前
        1
  •  47
  •   Paul    17 年前

    ["#p1", "#p2", "#p3", "#p4", "#p5"].join(", ")
    

    可以选择元素数组,问题是您还没有元素,只有选择器字符串。无论以何种方式分割,都必须执行.getElementById之类的搜索或使用实际的jQuery选择。

        2
  •  14
  •   matt b    17 年前

    Array.join method

    var a = ["#p1", "#p2", "#p3", "#p4", "#p5"];
    var s = a.join(", ");
    //s should now be "#p1, #p2, #p3, ..."
    $(s).whateverYouWant();
    
        3
  •  9
  •   Adam Luter    17 年前

    $(foo.join(", "))

        4
  •  4
  •   Dan F    17 年前

    $(theArray.join(','));
    
        5
  •  4
  •   Gareth Compton    5 年前

    //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();
    

    如果你想让他们单独做某事,还有.each();

    var peas = ['#p1','#p2','#p3','#p4','#p5'];
    $.each(peas, i => {
        $(peas[i]).click(() => {
            $(peas[i]).css({'color':'red'});
        });
    });
    

    $.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)"})
    );
    

    jQuery .each() The fiddle in action (with updates!)

        6
  •  3
  •   Mark    17 年前

    join

    var arr = ["#p1", "#p2", "#p3", "#p4", "#p5"];
    $(arr.join(","))
    
        7
  •  -1
  •   Bnaya Zil    5 年前

    ["#p1", "#p2", "#p3", "#p4", "#p5"].toString()