我想要显示一个"嗨。"每一秒,但以下代码确实7"嗨。"一秒。 我该怎么办?
的script.js
var main = function(){
for(var i=0; i<7; i++){
setTimeout(function(){$('div').append("Hi.");},1000);
};
};
$(document).ready(main);
的index.html
<html>
<head>
</head>
<body>
<div></div>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
答案 0 :(得分:2)
您希望使用setInterval代替setTimeout
。
您可以setInterval
与clearInterval一起使用来完成您的需要。
答案 1 :(得分:0)
for循环创建7个超时,从循环完成时完成1秒。您可以通过循环索引多次超时。
var main = function(){
for(var i=0; i<7; i++){
setTimeout(function(){$('div').append("Hi.");}, i * 1000);
};
};
$(document).ready(main);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div></div>
或者,您可以使用setInterval
和计数器清除第7次运行的间隔。对于较长的循环,这会更好。
var main = function(){
var counter = 0;
var interval = setInterval(function() {
$('div').append("Hi.");
if(++counter >= 7) {
clearInterval(interval);
}
}, 1000);
};
$(document).ready(main);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div></div>