我尝试使用以下代码定期更改标签的文本:

    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中的最后一个字符串打印到屏幕上,然后再执行其他操作。我该怎么做才能定期更改它?

最佳答案

那不是你睡觉的方式。用任何语言重复测试都是正确的
 直到约会

改为这样做:

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停止调用该函数。

09-25 21:30