如何在javascript中从任何指定的数字开始计数

How to count up starting at any specified number in javascript?

本文关键字:数字 开始 任何指 javascript      更新时间:2023-09-26

假设我在div中有一个数字:

<div id="value">100</div>

我有这个JavaScript在它上面起作用:

function animateValue(id){
    var obj = document.getElementById(id);
    var current = obj.innerHTML;
    setInterval(function(){
        current++;
    },1000);
}
animateValue(value);

据我了解,这个脚本翻译为:

• 获取名为(在本例中)"value"的 HTML 元素并将其存储在 "obj"
中• 从 obj 获取内部 html 并将其存储在 "current"
中• 获取"当前"变量并每秒递增一次

它应该获取#value的内容,并每秒增加一个,但它什么也不做。我该如何解决这个问题?我做错了什么?正如你所知道的,我在javascript方面没有经验,所以对我放轻松。

您更改了current号,但从未更新objinnerHTML,这是实际显示的内容。如果您在current++之后立即设置obj.innerHTML = current;它应该为您做一些事情。

并将animateValue(value);更改为animateValue('value');(谢谢,@nevermind)

我不确定您是否要更新 DIV 的内容。也许这就是你想要的?

function animateValue(id){
    var obj = document.getElementById(id);
    var current = parseInt(obj.innerHTML);
    setInterval(function(){
        current++;
        // Update the contents of the element
        obj.innerHTML = current;
    },1000);
}
animateValue('value');

http://jsfiddle.net/L1q5t9gz/

使用 jQuery。更容易...其他答案更复杂,这是一个简单的答案。没有解析或类似的东西....代码更简单,更有效。

所以,这比你想象的要简单:首先...检查当前值,然后添加并打印

                $(function(){
                    //Get Current HTML
                    var currentValue = $("#value").html();
                    //do this every 1000 ms (1 second)
                    setInterval(function(){
                        //add the value to the current
                        var newValue = currentValue++
                        // print the new value
                        $("#value").html(newValue);
                    },1000)
                })

下面是解决您问题的 JSFiddle 示例: http://jsfiddle.net/rszczypka/f5jfn5bo/

HTML部分:

<div id="value">100</div>

JavaScript部分:

function animateValue(id){
    var obj = document.getElementById(id);
    var current = parseInt(obj.innerHTML);
    setInterval(function(){
        obj.innerHTML = current++;
    },1000);
}
animateValue('value');