说我在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没有经验,所以对我很轻松。
答案 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');
答案 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');