var mess = [];
mess.push('test1');
mess.push('test2');
mess.push('test3');
var num = Math.floor((Math.random() * mess.length));
document.writeln(mess[num]);
此代码在刷新页面时会生成随机输出。我想要知道的是让它自动更改,就像在页面上动态更改一样,它会每5秒左右更改一次。
我该怎么做呢?
感谢任何帮助谢谢!
答案 0 :(得分:4)
在HTML中指定容器,而不是使用document.writeln
:
<span id="target">This will be filled by Javascript</span>
现在将代码包装在函数中,将结果存储在span
中,然后使用setTimeout
使其成为期刊。
var mess = [];
mess.push('test1');
mess.push('test2');
mess.push('test3');
function randomize() {
document.getElementById('target').innerHTML =
mess[Math.floor((Math.random() * mess.length))];
setTimeout(randomize, 5000);
}
randomize(); // initial call to get it going
在声明范围之后将Javascript放入代码中,否则您将收到错误消息,指出您Cannot set property innerHTML on NULL
。
答案 1 :(得分:0)
你可以使用递归功能。很抱歉,如果我误解了你的问题,但你想要这样的话吗?
window.onload = function(){
var mess = [];
mess.push('test1');
mess.push('test2');
mess.push('test3');
(function r() {
var num = Math.floor((Math.random() * mess.length));
document.body.innerHTML = mess[num];
setTimeout(r, 5000);
})();
};
答案 2 :(得分:0)
您可以使用setInterval
以每5秒的间隔生成一个新的随机索引,然后从数组中打印随机值。
var mess = [];
mess.push('test1');
mess.push('test2');
mess.push('test3');
setInterval(
function() {
var num = Math.floor((Math.random() * mess.length))
document.write(mess[num]);
}, 5000);
请参阅此小提琴 http://jsfiddle.net/3wpcp35L/