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

时间:2014-11-20 21:51:27

标签: javascript html

说我在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并将其存储在“当前”中 •获取“当前”变量并每秒递增

它应该采用#value的内容并且每秒增加一个,但它什么都不做。我该如何解决这个问题?我做错了什么?正如你所知,我对javascript没有经验,所以对我很轻松。

4 个答案:

答案 0 :(得分:2)

您更改了current号码,但从未更新innerHTML的{​​{1}},这是实际显示的内容。如果您在obj之后立即设置obj.innerHTML = current;它应该为您做点什么。

current++更改为animateValue(value);(谢谢,@nevermind)

答案 1 :(得分:1)

我不确定您是否要更新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/

答案 2 :(得分:1)

使用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)
                })

答案 3 :(得分:1)

以下是解决问题的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');