我知道document.all是document里所有元素的集合,只有IE支持,而document.getElementById和document.getElementsByName一般浏览器都支持!但我还是觉得模糊,今天我写了如下代码:
function trainshow(box,showid,closediv){
    var ss="";
    var tt, n=0; 
    var nn =document.all.item(box);

       for (j=0; j<nn.length; j++) {
if (document.all.item(box,j).checked) {    //复选框被选中
  n = n + 1;
  tt =document.all.item(box,j).value+"";    //选中复选框的值
  if(n==1) {
ss= tt;
  }
  else {
ss=ss + "<br>"+ tt;
  }
 }
    }
    document.getElementById(showid).innerHTML=ss;   //所选内容显示在ID为showid单元格
     document.getElementById(closediv).style.display='none';   //隐藏行业选择层     
}我将上面var nn =document.all.item(box);改为
var nn=ducument.getElementsByName(box); 为什么就出错了呢?

解决方案 »

  1.   

    这个box是一组复选框对象的名字!
    我的意思其实就是
    document.all.item(box)和 ducument.getElementsByName(box) 相等吗?
      

  2.   

    在浏览器方面的区别
    但在Firefox下只能用document.getElementById,另外 innerText innerHTML 可以在IE下通过,但innerText在Firefox下是不起作用的 测试 发现document.all是IE下面的document属下的所有元素的集合 可以通document.all.length来看到document下面的元素数量 document.all(index)后面的index参数是一个集合方法 
    document.getElementById 返回 ID 属性值与指定值相同的第一个对象,如果 ID 属于一个集合,getElementById 方法返回集合中的第一个对象。 document.all 如果 ID 属于一个集合,document.all返回一个集合。而且只支持IE。 所以在使用IE的前提下,document.all(index)要生效需要保证index是唯一的
    如果你要想你编写的程序更加广泛的使用而不出现差错,那就应该使用document.getElementById好点
      

  3.   

    我的问题解决了,document.all.item(box)和 ducument.getElementsByName(box) 是完全一样的!
    谢谢各位了。