javascript - jQuery:使用切片选择元素

标签 javascript jquery

在一个页面中,我有具有相同类的不同 div 元素

<div id="masterdiv">
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
  <div class="a"></div>
<div>

通过 setTimeout,我想获取三个元素的时间,对它们进行一些操作。

我尝试使用切片函数:

var elements = $("#masterdiv").find('.a');

var t = setInterval(function () {
   var currentElements = elements.slice(points.f, points.l); 
  /* where points.f = 0 and points.l = 3 */
  /* do something with currentElements then increment points.f and points.l +1 */

}, xinterval );

但是有一个问题,在某个时间我的代码将到达 .slice(8,10)/.slice(9,11) 和 11 个 div 的选择。

所以在这些情况下(point.l > elements.length())我想选择第一个div而不是超出的div:

  • 对于 .slice(8,10) 我想选择而不是 不存在的 div '10' div 0 和 8,9 div 。
  • 对于 .slice(9,11) 我想选择而不是 不存在 div '10','11' div 0,1 和 9 div。

我怎样才能做到这一点?我可以用切片来做还是应该使用其他函数?

预先感谢您的所有帮助。

最佳答案

另一种方法是使用 pop() 和 push() 数组函数,如下所示:

var $elements = $("#masterdiv").find('.a');
// Convert to native Array
var elements = Array.prototype.slice.apply($elements);

var t = setInterval(function () {

  elements.slice(points.f,points.l).forEach(function(el){ 

      // do something on the element... 
      $(el).addClass('debug');

   });
  elements.push(elements.shift()); // Re-arrange elements array for loop

}, xinterval );

这是 codepen 演示:http://codepen.io/kostasx/pen/mRVzqQ?editors=0010

关于javascript - jQuery:使用切片选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41586882/

相关文章:

javascript - 如果下拉列表中没有选定值,则禁用按钮

jquery - 如何验证jquery中的选择字段?

javascript - jQuery 表单验证在 JSP 中不起作用

javascript - ajax调用后jQuery动态调整div的大小

javascript - 如何从不同节点访问合约功能?

javascript - Kendo treelist 子节点问题

javascript - 如何使用ajax使用post并定位它的url

javascript - 文本附加和循环效果

javascript - React 协调 - props diff

javascript - 获取要更改的文本