Javascript 依次单击一个div

Javascript 依次单击一个div,javascript,jquery,Javascript,Jquery,我希望你能理解我的问题 目前,我有一个JS函数,可以随机选择特定Html类的一个div 现在我想重写一个函数,让它一个接一个地选择div,就像它们在HTML内容中排序一样 我该怎么做 仅供参考:使用jquery进行随机选择,如下所示: function pickrandom() { var elems = $(".classname"); if (elems.length) { var keep = Math.floor(Math.random() * elems.le

我希望你能理解我的问题

目前,我有一个JS函数,可以随机选择特定Html类的一个div

现在我想重写一个函数,让它一个接一个地选择div,就像它们在HTML内容中排序一样

我该怎么做

仅供参考:使用jquery进行随机选择,如下所示:

function pickrandom() {
   var elems = $(".classname");
   if (elems.length) {
       var keep = Math.floor(Math.random() * elems.length);
       console.log(keep);
       $(elems[keep]).click();
   }
}

谢谢

希望这对您有所帮助-看不到您的标记,但它应该会让您走上正确的道路。我还将您的
.click()
更改为
.trigger('click')
,这应该更加可靠

JavaScript
$(文档).on('click','classname',function()){
var self=$(这是);
var total_items=$('.classname').length;//10
var index=self.index();//第三个元素为2
如果(索引<总项目){
setTimeout(函数(){
$('.classname').eq(索引+1).trigger('click');
}, 3000);
}    
});
这将在3秒内调用下一次单击

我不知道您为什么要使用随机化器功能。您可以允许用户进行单击
$(“div”)。单击(函数(){
var el=$(本);
setTimeout(函数(){
console.log(el.text());
el.切换类别(“点击”);
}, 2000);
});
var random=Math.floor((Math.random()*$(“div”).length)+1);
var指数=随机-1;
控制台日志(“随机数:”,随机);
var clicker=setInterval(函数(){
如果(索引===$(“div”).length){
清除间隔(点击器);
控制台日志(“清除间隔”);
}否则{
$(“div”).eq(索引)。单击();
索引++;
}
},2000)
div{
高度:50px;
宽度:100%;
边框:2件纯黑;
背景颜色:浅绿色;
边缘底部:10px;
文本对齐:居中;
字体大小:30px;
}
.点击{
背景颜色:浅蓝色;
}

第一组
第2组
第3组
第4组
第5组
第6组

fiddle/code可以通过重写函数使您的问题更加清晰。如果我理解正确,您选择了一个随机div(比如第三个div),您希望单击div 3以。。。(页面上的div数量)?@Jorrex我应该这样工作:用户单击一个div(假设您单击了第三个div)。在特定时间后,函数应在第四个函数上执行单击…如果要通过执行此操作自动单击(
$(elems[keep])。单击()这是一个糟糕的方法,你应该试试
$(elems[keep])。触发器('click')如果要自动单击
function pickrandom() {
    var elems = $(".classname");
    if (elems.length) {
        var curTarget = Math.floor(Math.random() * elems.length);
        console.log(curTarget);
        $(elems[curTarget]).trigger('click');

        // Find index of our next target - if we've reached
        // the end, go back to beginning
        var nextTarget = curTarget + 1;
        if( nextTarget > elems.length ) {
            nextTarget = 0;
        }

        // Wait 3 seconds and click the next div
        setTimeout( function() { $(elems[nextTarget]).trigger('click'); }, 3000 );
    }
}
        $(document).on('click', '.classname', function(){
            var self = $(this);
            var  total_items = $('.classname').length; // 10
            var index = self.index(); //2 for 3rd element
            if (index < total_items) {
                setTimeout(function () {
                    $('.classname').eq(index+1).trigger('click');
                }, 3000);
            }    
        });