微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在jquery中选择每对2个连续元素?

有谁可以帮我解决如何实现以下目标?我有一组未知大小的div.每个div都有一类.feature.我需要运行一个jQuery脚本来查找所有具有.feature的div,然后将所有子项作为一系列对来查找.然后将每对提交给另一个jQuery函数.

例如:

1. <div.feature/>
2. <div.feature/>
3. <div.feature/>
4. <div.feature/>
5. <div.feature/>

结果应该是1 2和3 4配对在一起,这样我就可以在每个单独的集合上调用一个jQuery函数.

我知道我可以简单地将每一对包装在一个外部div中然后找到每个包装器divs children但是我想避免在可能的情况下更改标记.

提前致谢.

解决方法

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

我们的想法是构建一个jQuery对象数组.

编辑看起来像1.4添加“$()”来获取一个空的jQuery对象.

再次编辑durr Javascript有花车:-)

嘿@Adam:如果我们有这个jQuery扩展(当然这是一个玩具版本):

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

然后我们可以像这样建立“对”数组:

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

原文地址:https://www.jb51.cc/jquery/175705.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐