var div = new Array();
for (i = 0; i < 2; i++)
{
div[i] = new Array();
for ( j = 0; j < 2; j++)
{
div[i][j] = "layer3_"+i+"_"+j;
if(document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "" && document.getElementById(eval("layer3_"+i+"_"+j)) != div3)
{
document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "none"
}
}
}
for (i = 0; i < 2; i++)
{
div[i] = new Array();
for ( j = 0; j < 2; j++)
{
div[i][j] = "layer3_"+i+"_"+j;
if(document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "" && document.getElementById(eval("layer3_"+i+"_"+j)) != div3)
{
document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "none"
}
}
}
document.getElementById("layer3_"+i+"_"+j)
或
eval("layer3_"+i+"_"+j)
这一小段主要实现的功能就是,在一个层出现之前(display="")之前检验其他的层是不是处于显示状态,如果是就将它隐藏(display="none")
要改为
document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "none";
这个分号很重要哦!!
window.onload = init;function init() {
var div = new Array();
for (i = 0; i < 2; i++)
{
div[i] = new Array();
for ( j = 0; j < 2; j++)
{
div[i][j] = "layer3_"+i+"_"+j;
if(document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "" && document.getElementById(eval("layer3_"+i+"_"+j)) != div3)
{
document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "none"
}
}
}
}这样也许有效,据说好像是初始化的问题,如果直接将代码写到head中的话,那些对象都还没有闯将出来,就会出现这种错误。而在onload中写的话,就是所有的对象都已经创建完成了~~~仅供参考~~