我有这段代码:
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
循环的一部分,该循环应该使用i
定位"img" + i
来选择div
id
img0
9
- img0
,然后我将其分解并尝试使用单独的行手动定位每个9
- img0
并且它只是一直打破。是的,9
- for
div位于HTML中。原始的for (i = 0; i < array.L; i++) {
var tempButton = "img" + i;
document.getElementById(tempButton).style.display = "none";
};
循环看起来像这样:
style
为什么null
属性{{1}},我该如何解决?
答案 0 :(得分:11)
window.onload = displayMenu('main', 0);
这是你的问题。请改用:
window.onload = function() {displayMenu('main', 0);}
在您的代码中,调用displayMenu
,然后将该调用的返回值分配给window.onload
。这会失败,因为您在添加window.onload
元素之前分配imgX
。
在解决方案中,您将函数文本分配给window.onload
,在调用时,它运行displayMenu
。它现在有效,因为元素已放在页面上。
答案 1 :(得分:1)
在你的jsFiddle中,你定义了两次函数displayMenu()
,这会破坏它。