fra*_*ank 1 javascript arrays undefined-reference
有人可以告诉我这段代码有什么问题吗?scrns[i]虽然Chrome仍然在鼠标悬停时运行代码,但Chrome和Firefox都表示未定义.
function nextPrev() {
if (!document.getElementsByClassName) return false;
var scrns = document.getElementsByClassName('scrn');
for (var i=0; i<=scrns.length; i++) {
// console.log(i);
scrns[i].onmouseover = function() {
// console.log('foo');
}
}
}
window.onload = nextPrev();
Run Code Online (Sandbox Code Playgroud)
我已经测试了for循环是否正常工作,并试图以我知道的各种方式确定问题的来源.我甚至看了一下我前一本书中的一个例子,并且无法理解为什么scrns[i]不定义.
任何帮助非常感谢!
你循环太远了.如果i等于scrns.length那么它超出了数组的末尾.删除=你的停止条件:
for (var i=0; i < scrns.length; i++) {
Run Code Online (Sandbox Code Playgroud)
<=循环时你正在使用.但请记住,数组从0开始索引,而不是1.因此,包含10个元素的数组的长度为10,但元素为0-9.更改以下内容:
for (var i=0; i<=scrns.length; i++) {
Run Code Online (Sandbox Code Playgroud)
至:
for (var i=0; i < scrns.length; i++) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |