我正在尝试创建一个简单的JS,它将获得随机数组并通过div容器发布它们。以下是我到目前为止的情况,现在请记住,我对JS很恐怖。
function timedMsg() {
currMsg++;
document.getElementById('timedMsgDiv').innerHTML = msgArr[currMsg % msgArr.length];
};
function init() {
currMsg = -1;
msgArr = Array('Computer.', 'Uploading', 'Random');
timedMsg();
var t = setInterval("timedMsg()", 50);
};
window.onload = init();
它只获得'计算机',然后不会随机翻转它们或循环或任何东西。有什么理由吗?这是我的JSFiddle:http://jsfiddle.net/R8SYf/
答案 0 :(得分:2)
答案 1 :(得分:1)
您的代码中存在一些问题:
1)当您将字符串传递给setInterval
时,触发eval
并且您的函数在全局上下文中运行,您不希望这样。要修复它,只需传递对该函数的引用; rebember函数也是对象:
var t = setInterval(timedMsg, 2000);
2)window.load
事件需要一个函数,但您要分配init
函数的返回值undefined
。与上面的情况一样,您需要传递一个函数对象,而不是执行函数:
window.onload = init;
3)您的小提琴已设置为在onLoad
事件中加载代码,但您正在分配自己的功能。您需要将行为更改为No wrap - in <head>
。
4)虽然有效,但使用Array构造函数创建数组并不是一种好习惯。只需使用文字语法:
msgArr = ['Computer.', 'Uploading', 'Random'];