javascript - FOR 循环计数

标签 javascript jquery for-loop

我有以下代码,我尝试使用 FOR 循环 简单地数到 10 通过每次迭代,我想使用 jQuery 更新一个 div 元素i

的值
for (i=0;i<=10;i++){
  setTimeout(function(){
      $(".test").html(i);
  },10000);
}​

JSFIDDLE

问题是,循环将执行并且在完成之前不会显示任何内容,这将只是数字 10。

有什么方法可以实现我的需求吗?

感谢

最佳答案

由于闭包效应,您的代码无法按预期工作。它通常通过创建另一个在创建后立即调用的匿名函数来解决:

for (i=0;i <= 10;i++){
    (function(i) {
        setTimeout(function(){
            $(".test").html(i);
        }, i * 1000);
    })(i);
}​

http://jsfiddle.net/zerkms/GgzFW/4/

关于javascript - FOR 循环计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10575662/

相关文章:

javascript - Console.log 显示数组但无法返回

javascript - 使用 canvas.toDataURL() 中的 node.js 保存图像文件

javascript - Jquery/JS 引用单个单元格内容

python - 如何在Python中不使用replace()函数的情况下替换字符串中句子中所有实例中的字母(例如ABC)?

javascript - 对光环延迟的误解! JS

javascript动态创建脚本 block

javascript - 在 Ajax 中,如何通过脚本代码获取 2 个输入值?

javascript - 表格行的叠加

jquery - 如果当我将鼠标悬停在 div 的内部元素上时触发事件,我如何在 div 上使用 jquery mouseout ?

php - 使用 PHP 循环遍历数组