Javascript 对于jquery.eq选择器有更短的方法吗?

Javascript 对于jquery.eq选择器有更短的方法吗?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我想知道是否有不同的方法只添加一个代码,而不是每次重复eq选择器 startSliding($("div").eq(0)); startSliding($("div").eq(1)); startSliding($("div").eq(2)); 完整的js文件是: startSliding($("div").eq(unlimited)); 我在另一个问题中得到了这样的答案,这个问题来自于一位对我帮助很大的人,但现在我正在研究我的项目,我在页面中的div正在改变,有时在一个页面中我有10个di

我想知道是否有不同的方法只添加一个代码,而不是每次重复eq选择器

startSliding($("div").eq(0));
startSliding($("div").eq(1));
startSliding($("div").eq(2));
完整的js文件是:

startSliding($("div").eq(unlimited));
我在另一个问题中得到了这样的答案,这个问题来自于一位对我帮助很大的人,但现在我正在研究我的项目,我在页面中的div正在改变,有时在一个页面中我有10个div,有时是50个div。为每个div添加eq选择器也会影响页面速度。因此,如果有一个较短的代码可以完成相同的工作,那么很高兴知道。我是一个javascript新手:

谢谢大家!

这样做很简单。 您只需使用.每个jquery方法

请检查下面的代码段以了解相同的信息-

//添加代码 设elem=$'div.someclass'; 每个功能元素{ startSlidingelem.eqi; }; //你的代码 功能启动滑动分区{ var i=0; var-tid=null;
var sec=1/3;//听起来好像您想要一个循环或.each。@Albano您可以使用$。each用于此目的,它将处理任何数量的动态添加的div元素。我已经尝试过了,但它对我不起作用。您可以展示您使用循环机制尝试过的代码吗?如果这不是您的问题,有人可以指导我吗?
startSliding($("div").eq(0));
startSliding($("div").eq(1));
startSliding($("div").eq(2));
startSliding($("div").eq(3));

    function startSliding (div) {

      var i = 0;
      var tid = null;
      var sec = 1/3; // <- you want 1 here
      var images = $("img", div).map(function () {
        return $(this).attr("src");
      }).get();

      $("img:gt(0)", div).remove();
      $("img", div).hover(function () {
        var $this = $(this);
        tid = setInterval(function () {
          i = (i + 1) % images.length;
          $this.attr("src", images[i]);
        }, 1000 * sec);
      }, function () {
        clearInterval(tid);
        $(this).attr("src", images[0]);
      });
    }