for(var i=0;i<=menuitem.length;i++)
必须改成  for(var i=0;i<menuitem.length;i++)这是循环语句的基本准则   document.all.id_menu1.className="gray";
不知道本意是什么,也不好改,但是绝对是不合理

解决方案 »

  1.   

    getElementsByName -> getElementByName
      

  2.   

    document.getElementsByName('menuitem');document.getElementsTagByName('menuitem');
      

  3.   

    不好意思,搞错地方了!!!!!document.getElementsByName('menuitem');
    document.getElementsByTagName('menuitem');
      

  4.   

    for(var i=0;i<menuitem.length;i++)
    document.all("id_menu1").className="gray";
      

  5.   

    首先,你得到的menuitem未必是个数组,其次,循环中为<
    应该如下:
    function changeColor(obj)
    {
       var menuitem=document.getElementsByTagName('menuitem');
       if(menuitem!=null){
          if(menuitem[0]==null){
             menuitem=[menuitem];
          }
       }
       for(var i=0;i<=menuitem.length;i++)
       {    
        menuitem[i].className="module1";
        document.all.id_menu1.className="gray";
       }
    }
      

  6.   

    上帖笔误,应该如下:
    function changeColor(obj)
    {
       var menuitem=document.getElementsByTagName('menuitem');
       if(menuitem!=null){
          if(menuitem[0]==null){
             menuitem=[menuitem];
          }
       }
       for(var i=0;i<menuitem.length;i++)
       {    
        menuitem[i].className="module1";
        document.all.id_menu1.className="gray";
       }
    }
      

  7.   

    kuangjz(阿旷) 说的很对,menuitem的值未必是个数组,可是执行程序还是不对,用documnet.write(menuitem)得出menuitem.length的值是一,可是代码中写了好多name为menuitem的td.为什么呢?
      

  8.   

    上面的两位试过没有,
    什么情况下
    getElementsByName或getElementsByTagName得到的不是数组?