Javascript 让随机数组不工作?
我正在尝试创建一个简单的JS,它将获得随机数组并通过div容器发布它们。以下是我到目前为止的情况,请记住我对JS很糟糕Javascript 让随机数组不工作?,javascript,Javascript,我正在尝试创建一个简单的JS,它将获得随机数组并通过div容器发布它们。以下是我到目前为止的情况,请记住我对JS很糟糕 function timedMsg() { currMsg++; document.getElementById('timedMsgDiv').innerHTML = msgArr[currMsg % msgArr.length]; }; function init() { currMsg = -1; msgArr = Array('Compu
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();
它只获取“计算机”,然后不会随机翻转、循环或其他任何内容。有什么原因吗?这是我的JSFIDLE:将函数名传递给
setInterval()
,如下所示:
var t = setInterval(timedMsg, 2000);
将函数名传递给
setInterval()
,如下所示:
var t = setInterval(timedMsg, 2000);
将函数名传递给
setInterval()
,如下所示:
var t = setInterval(timedMsg, 2000);
将函数名传递给
setInterval()
,如下所示:
var t = setInterval(timedMsg, 2000);
您的代码中有几个问题: 1) 当您将字符串传递给
setInterval
时,您将触发eval
,并且您的函数在全局上下文中运行,您不希望出现这种情况。要修复它,只需向函数传递一个引用;rebember函数也是对象:
var t = setInterval(timedMsg, 2000);
2) window.load
事件需要一个函数,但您正在分配init
函数的返回值,该函数是未定义的
。与上述情况类似,您需要传递函数对象,而不是执行函数:
window.onload = init;
3) 您的小提琴设置为在onLoad
事件中加载代码,但您正在分配自己的函数。您需要将行为更改为No wrap-in
4) 虽然is可以工作,但使用数组构造函数创建数组并不是一种好的做法。只需使用文字语法:
msgArr = ['Computer.', 'Uploading', 'Random'];
修复了代码中的一些问题: 1) 当您将字符串传递给
setInterval
时,您将触发eval
,并且您的函数在全局上下文中运行,您不希望出现这种情况。要修复它,只需向函数传递一个引用;rebember函数也是对象:
var t = setInterval(timedMsg, 2000);
2) window.load
事件需要一个函数,但您正在分配init
函数的返回值,该函数是未定义的
。与上述情况类似,您需要传递函数对象,而不是执行函数:
window.onload = init;
3) 您的小提琴设置为在onLoad
事件中加载代码,但您正在分配自己的函数。您需要将行为更改为No wrap-in
4) 虽然is可以工作,但使用数组构造函数创建数组并不是一种好的做法。只需使用文字语法:
msgArr = ['Computer.', 'Uploading', 'Random'];
修复了代码中的一些问题: 1) 当您将字符串传递给
setInterval
时,您将触发eval
,并且您的函数在全局上下文中运行,您不希望出现这种情况。要修复它,只需向函数传递一个引用;rebember函数也是对象:
var t = setInterval(timedMsg, 2000);
2) window.load
事件需要一个函数,但您正在分配init
函数的返回值,该函数是未定义的
。与上述情况类似,您需要传递函数对象,而不是执行函数:
window.onload = init;
3) 您的小提琴设置为在onLoad
事件中加载代码,但您正在分配自己的函数。您需要将行为更改为No wrap-in
4) 虽然is可以工作,但使用数组构造函数创建数组并不是一种好的做法。只需使用文字语法:
msgArr = ['Computer.', 'Uploading', 'Random'];
修复了代码中的一些问题: 1) 当您将字符串传递给
setInterval
时,您将触发eval
,并且您的函数在全局上下文中运行,您不希望出现这种情况。要修复它,只需向函数传递一个引用;rebember函数也是对象:
var t = setInterval(timedMsg, 2000);
2) window.load
事件需要一个函数,但您正在分配init
函数的返回值,该函数是未定义的
。与上述情况类似,您需要传递函数对象,而不是执行函数:
window.onload = init;
3) 您的小提琴设置为在onLoad
事件中加载代码,但您正在分配自己的函数。您需要将行为更改为No wrap-in
4) 虽然is可以工作,但使用数组构造函数创建数组并不是一种好的做法。只需使用文字语法:
msgArr = ['Computer.', 'Uploading', 'Random'];
修正了window.onload=init代码>在你的代码和小提琴中,有些东西看起来不对劲。固定
window.onload=init代码>在你的代码和小提琴中,有些东西看起来不对劲。固定window.onload=init代码>在你的代码和小提琴中,有些东西看起来不对劲。固定window.onload=init代码>在你的代码和小提琴中,有些东西看起来不对劲。固定setInterval(timedMsg,2000)代码>@elclanrs-是的,它又短又漂亮!非常感谢。成功了。一旦我有能力,我会给出答案。但这不是真正的问题。真正的问题是如何设置小提琴,OP必须在headNo wrap-
中加载脚本,并将一个函数分配给加载事件(而不是返回值),并且它应该在@elclans@elclans@what you意指什么?setInterval(timedMsg,2000)代码>@elclanrs-是的,它又短又漂亮!非常感谢。成功了。一旦我有能力,我会给出答案。但这不是真正的问题。真正的问题是如何设置小提琴,OP必须在headNo wrap-
中加载脚本,并将一个函数分配给加载事件(而不是返回值),并且它应该在@elclans@elclans@what you意指什么?setInterval(timedMsg,2000)代码>@elclanrs-是的,它又短又漂亮!非常感谢。成功了。一旦我有能力,我会给出答案。但这不是真正的问题。真正的问题是如何设置小提琴,OP必须在headNo wrap-
中加载脚本,并将一个函数分配给加载事件(而不是返回值),并且它应该在@elclans@elclans@what you意指什么?setInterval(timedMsg,2000)代码>@elclanrs-是的,它又短又漂亮!非常感谢。成功了。一旦我有能力,我会给出答案。但这不是真正的问题。真正的问题是如何设置小提琴,OP必须在headNo wrap-
中加载脚本,并分配一个函数