jquery 循环添加两次

标签 jquery css

运行此代码时,每次我单击“#right”时,#slide 都会递增 2 而不是仅递增 1...因此例如,如果总共有 1 个、第 3 个和第 5 个元素6 个元素。

    var present=2;
    var total_slide=document.getElementById("slider").childElementCount;
    $("#right").click(function()
    {

        for(i=1;i<=total_slide;i++) {
            $("#slide"+i).css("display","none"); // hide all elements
        }
        $('#slide'+present).css("display","block"); // the problem : display 
                                                    // only the present element
                                                    // (gets incremented by 2 )
        present=(present+1)%total_slide;
    });

如果我使用 1、2、3 等,例如:('#slide'+2) 代替 ('#slide'+present),得到正确的结果,但我想动态地这样做..

谢谢

最佳答案

无需执行 for 循环,jQuery 已返回数组中元素的集合。
您只需要预先递增和“模块化”(%) 您的计数器。

http://jsbin.com/uhiyew/1/edit

var present=2;
var $childrens = $("#slider > *");
var total_slide = $childrens.length;

$childrens.eq(present).show();


$("#right").click(function(){

     $childrens.hide() // hide all elements
        .eq(++present%total_slide).show(); // show desired

});

关于jquery 循环添加两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259019/

相关文章:

html - 为我的 ionic 2 应用程序更改 &lt;textarea&gt; 中占位符文本的颜色

javascript - Canvas 元素线不直?

jquery - 在 jQuery 插件中多次触发 click 事件

jquery - 使用 jQuery 迭代 select 元素中的选项

javascript - Slick.js 加载问题

javascript - 使用 mozilla 导航器粘贴剪贴板中的内容

javascript - Odin 元素使用多个事件处理程序 eclipse 刻草图问题

JavaScript 代码不在脚本打开的窗口中执行

css - 为什么 css 声明中不允许使用不间断空格?

css - NavBar 显示不同的 Chrome/Firefox