How do I select every pair of 2 sequential elements in jQuery?

前端 未结 5 2076
余生分开走
余生分开走 2020-12-20 20:50

Can anyone please help me to work out how to achieve the following? I have a set of divs of unknown size. Each div has a class of .feature. I need to run a jQuery script to

5条回答
  •  鱼传尺愫
    2020-12-20 21:24

    var pairs = [];
    $('div.feature').each(function(i, div) {
      var i_over_2 = Math.floor(i / 2);
      if (!pairs[i_over_2]) pairs[i_over_2] = $();
      pairs[i_over_2] = pairs[i_over_2].add(div);
    });
    $.each(pairs, function(i, p) {
      p.doSomethingToAPair();
    });
    

    The idea is to build up an array of jQuery objects.

    edit looks like 1.4 added "$()" to get an empty jQuery object.

    edit again durr Javascript has floats :-)

    Hey @Adam: if we had this jQuery extension (this is a toy version of course):

    jQuery.fn.zip = function(s) {
      var o = $(s);
      return this.map(function(i, e) {
        return $(e).add($(o[i]));
      });
    };
    

    then we could build the "pairs" array like this:

    var pairs = $('div.feature:even').zip('div.feature:odd');
    

提交回复
热议问题