如何随机获取此信息

时间:2014-09-14 14:05:49

标签: javascript

var mess = [];
mess.push('test1');
mess.push('test2');
mess.push('test3');
var num = Math.floor((Math.random() * mess.length));
document.writeln(mess[num]);

此代码在刷新页面时会生成随机输出。我想要知道的是让它自动更改,就像在页面上动态更改一样,它会每5秒左右更改一次。

我该怎么做呢?

感谢任何帮助谢谢!

3 个答案:

答案 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/