var cls=document.getElementById("menu"+i) if(cls.style.display=="none"){
document.cls.style.display="block";注意, cls 已经是("menu"+i)了。。  可是这样写根本不管用啊。没办法我只好这样写: var cls=document.getElementById("menu"+i) if(cls.style.display=="none"){
document.getElementById("menu"+i).style.display="block";
这样才管用。。这是为什么啊?

解决方案 »

  1.   

    var cls=document.getElementById("menu"+i)if(cls.style.display=="none"){
    document.cls.style.display="block";这样写的话就是document.document.getElementById("menu"+i).style.display='block'了。。
      

  2.   

    最上面的错误代码改为:
    var cls=document.getElementById("menu"+i)if(cls.style.display=="none"){
    cls.style.display="block";
      

  3.   

    +
    1:cls.style.display="block";
    2:document.style.display="block";
      

  4.   

    var cls=document.getElementById("menu"+i)if(cls.style.display=="none"){
    document.cls.style.display="block";
    ----------------------------
    第一句后cls是document.getElementById("menu"+i)对象的引用。
    注意是引用传递,而不是值传递!
    document.cls.style.display="block";直接写成cls.style.display="block";就行。
    ----------------
    再看这一句
    var cls=document.getElementById("menu"+i)
    定一个一个变量cls,他的值是一个对象元素的引用。
    在JS中定一个变量,默认属于window对象。
    document.cls.style.display="block";错误是因为cls不是document的属性。
    你可以
    var cls=document.getElementById("menu"+i)if(cls.style.display=="none"){
    window.cls.style.display="block";
    window默认可省略。
      

  5.   

    js和java一样通过xx.yy来调用xx的yy属性。当yy属性不存在是报undefined对象为定义错误。
      

  6.   

    这句话var cls=document.getElementById("menu"+i)
    已经把值赋给cls了
    那么以后要用的话直接写cls就好了
    而不是lz写的document.cls
      

  7.   

    关键误区:js中变量属于windows,而非,document
      

  8.   

    var cls=document.getElementById("menu"+i)if(cls.style.display=="none"){
    cls.style.display="block";
    }