【发布时间】:2016-10-01 15:00:55
【问题描述】:
我正在使用这个脚本来替换我页面上的一些文本。
function initChangeText() {
var time = 2;
setInterval('changeText();', time * 1000);
}
function changeText() {
var divs_ = document.getElementsByTagName("div")
for (var i = 0; i < divs_.length; i++)
if (divs_[i].className == "change")
changeULText(divs_[i]);
}
function changeULText(obj) {
var ul = obj.getElementsByTagName("ul")[0];
var li = obj.getElementsByTagName("li");
for (var i = 0; i < li.length; i++) {
if (li[i].className == "show") {
li[i].className = "";
li[(i + 1) % li.length].className = "show";
return;
}
}
}
window.onload = initChangeText;
问题是这个脚本在循环它自己。我不希望它。我希望它执行一次然后停止。
我该怎么做?
【问题讨论】:
-
听起来你应该使用
setTimeout而不是setInterval -
您应该避免将
string值传递给setTimeout或setInterval函数,如http://stackoverflow.com/a/5801700/6832715 解释的那样
标签: javascript loops