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"

}
  
   }
   
   }

解决方案 »

  1.   

    document.getElementById(eval("layer3_"+i+"_"+j))你这里重复了,eval("...")这个得到的值,可能就是一个DOM对象了,不需要再使用document.getElementById()了,可改为
    document.getElementById("layer3_"+i+"_"+j)

    eval("layer3_"+i+"_"+j)
      

  2.   

    document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "" 你是想给它值还是判断它的值,十有九应该是判断它的值吧??==
      

  3.   

    eval是执行JAVASCRIPT代码,你把layer3_1_1这类的字符串塞给EVAL干嘛
      

  4.   

    代码太长,而且关联性不是太大.后面还有句是:window.setTimeout(div3+".style.display=''",100)   //div3是参数
    这一小段主要实现的功能就是,在一个层出现之前(display="")之前检验其他的层是不是处于显示状态,如果是就将它隐藏(display="none")
      

  5.   

    我的目的就是想让程序把"layer3_"+i+"_"+j当成一个对象的id来用,怎么试都不行
      

  6.   

    看请在前加上函数eval("layer3_"+i+"_"+j)
      

  7.   

    (document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "" && document.getElementById(eval("layer3_"+i+"_"+j)) != div3将第一个=号改为==
      

  8.   

    document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "none"
     要改为
     document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "none";
     这个分号很重要哦!!
     
      

  9.   

    document.getElementById(eval("layer3_"+i+"_"+j)).style.display = "" 还缺少个等号,判断是否相等,是用双等号==
      

  10.   

    我估计是代码的位置放的不对,以我以前遇到过的类似问题来看可以把你的代码写成
    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中写的话,就是所有的对象都已经创建完成了~~~仅供参考~~