Javascript 对于jquery.eq选择器有更短的方法吗?
我想知道是否有不同的方法只添加一个代码,而不是每次重复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
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]);
});
}