for循環(huán)延遲執(zhí)行
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計(jì)時(shí)器</title>
<script type="text/javascript">
var na = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var cf = na.split(";");
function test01() {
for (var i = 0; i < cf.length; i++) {
document.getElementById("txt").value = cf[i];
}
}
</script>
</head>
<body>
<form>
<input type="text" id="txt">
<input type="button" value="start" onClick="test01()">
<input type="button" value="Stop" onClick="test02()">
</form>
</body>
</html>
怎么能讓cf[i] 循環(huán)在input里顯示一遍
2016-06-13
<!DOCTYPE HTML>
<html>
<head>
? ?<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
? ?<title>計(jì)時(shí)器</title>
? ?<script type="text/javascript">
? ? ? ?var na = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? ? ? ?var index=0;
? ? ? ?var cf = na.split(";");
? ? ?? var time=setInterval("duang()",500);
? ? ? ?function duang(){
? ? ? ? ? ?if(index<cf.length){
? ? ? ? ? ? ? ?document.getElementById("txt").value=cf[index++];
? ? ? ? ? ?}
? ? ? ? ? ?else {
? ? ? ? ? ?? ? document.getElementById("txt").value="輸出完了!";
?????????????? clearInterval(time);
?? ? ? ? ?? }
? ? ? ?}
? ?</script>
</head>
<body>
<form>
? ?<input type="text" id="txt">
? ?<input type="button" value="start" onClick="test01()">
? ?<input type="button" value="Stop" onClick="test02()">
</form>
</body>
</html>
解答:因?yàn)槭褂胒or循環(huán)的話,執(zhí)行太快,所以看不到一個(gè)一個(gè)出現(xiàn)的過程,所以需要使用間隔調(diào)用來給每個(gè)顯示一個(gè)空窗時(shí)間。特別注意的是這里如果使用for循環(huán)利用延遲調(diào)用而不是在外部使用間隔調(diào)用的話,會出錯(cuò),因?yàn)檠舆t調(diào)用是異步執(zhí)行的。