1

我有这个代码:

function displayMenu (newGal, newSub) {
    curGal = newGal;
    curSub = newSub;
    if (curGal == null) {
        curGal = "main";
    };
    arrayL = curGal.length;
    if (curImg == null) {
        curImg = 0;
    };
    if (curSub == null) {
        curSub = 0;
    };
    prevImg = curImg - 1;
    if (prevImg == null || prevImg < 0) {
        prevImg = arrayL;
    };
    nextImg = curImg + 1;
    document.getElementById('img1').style.display = "none";
};

不管它给了我什么,style财产是null. 这段代码从以前的样子被大量拆除;这是一个for循环的一部分,该循环应该用于选择带有of -的 s ,然后我将其分解并尝试手动定位每个i-使用单独的行,它只是不断中断。是的,- div 在 HTML 中。原始循环如下所示:"img" + idividimg09img09img09for

for (i = 0; i < array.L; i++) {
    var tempButton = "img" + i;
    document.getElementById(tempButton).style.display = "none";
};

为什么是style财产null,我该如何解决?

4

2 回答 2

11
window.onload = displayMenu('main', 0);

这是你的问题。改用这个:

window.onload = function() {displayMenu('main', 0);}

在您的代码中,displayMenu被调用,然后将该调用的返回值分配给window.onload. 这失败了,因为您是在添加元素window.onload之前分配的。imgX

在解决方案中,您改为分配一个函数文字window.onload,在调用时将运行displayMenu. 它现在可以工作了,因为元素已被放置在页面上。

于 2012-07-08T01:20:18.483 回答
1

在您的 jsFiddle 中,您displayMenu()定义了两次函数,这会破坏它。

于 2012-07-08T01:19:16.643 回答