document.all是取得name或id为指定的字符串的对象,如果,对象不止一个,就返回数组.
你alert(document.all(index).length)一下,看看有结果没,有的话就说明是数组了.

解决方案 »

  1.   

    document.all是IE下面的document属下的所有元素的集合
    可以通过document.all.length来看到document下面的元素数量
    document.all(index)后面的index参数是一个集合方法如果index是string那么可以获得document下面具有id或name为index的元素 如果只有一个的元素话返回这个元素 如果有多个元素id或name是index的话就返回一个集合 如果没有的话就返回null
    这样并不好 因为当你不知道有多少个id或name是index的元素时 就比较容易出错.
    如果index是数字的话 那么会返回以0为基础的 文档中第index个元素. 元素的文档序列可以通过Element.sourceIndex来获取document.getElementById(name) 只返回第一个具有id或name为name的元素 所以不是null就是一个元素 而不会返回集合 这样就大大减少了错误发生的可能性 如果需要返回一个id或name为name的元素集合的话 就要用 document.getElementsByName(name)来获取另外document.all只有IE支持 其他浏览器并不支持 而document.getElementById 和document.getElementsByName是任何浏览器都支持的
      

  2.   

    document.all
    Array of all HTML tags in the document.Collection of all elements contained by the object.
      

  3.   

    document.getElementById
    返回 ID 属性值与指定值相同的第一个对象,如果 ID 属于一个集合,getElementById 方法返回集合中的第一个对象。document.all
    如果 ID 属于一个集合,document.all返回一个集合。而且只支持IE。所以在使用IE的前提下,document.all(index)要生效需要保证index是唯一的
      

  4.   

    可能是你的index值写错了<script language="JavaScript">
    <!--
    window.onload=function()
    {
    //以下语句都是成功的
    //document.getElementById("tt").readOnly =true;
    document.all(5).readOnly =true;//在这个例子中是5
    //alert("The input index is:"+document.getElementById("tt").sourceIndex);
    }
    //-->
    </script><input type="text" name="tt">