我尝试使用以下代码定期更改标签的文本:
function sleep(milliSeconds) {
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + milliSeconds);
}
function showMap() {
var str = document.getElementById("lbPoints").firstChild.nodeValue;
var lbl = document.getElementById("my");
var strs = str.split("-");
var millisecondsToWait = 500;
for (var i = 0; i < strs.length-1; i++) {
lbl.innerHTML = strs[i];
sleep(500);
}
}
我的“str”和“strs”是对的。代码有效,但是等待5秒钟并将strs中的最终字符串打印到屏幕上,而不是其他内容。我该怎么做才能定期更改它?
答案 0 :(得分:3)
这不是你的睡眠方式。在任何语言中,重复测试都是正确的 直到约会。
请改为:
function showMap() {
var str = document.getElementById("lbPoints").firstChild.nodeValue;
var lbl = document.getElementById("my");
var strs = str.split("-");
var millisecondsToWait = 500;
var i=0;
var interval = setInterval(function(){
if (i==strs.length-2) clearInterval(interval);
lbl.innerHTML = strs[i++];
}, millisecondsToWait);
}
<强> Demonstration 强>
这使用setInterval重复调用一个函数,并在数组末尾使用clearInterval来停止调用函数。
答案 1 :(得分:2)
只需使用setInterval
,这就是它的用途。来自documentation:
使用固定的方法重复调用函数或执行代码片段 每次调用该函数之间的时间延迟。