解决方案 »

  1.   

     function mysort()
            {
                var tableNode=document.getElementsByTagName("table")[0];
                var trNodes=tableNode.rows;
    var arr=[];
    for(var i=0;i<trNodes.length;i++){
    arr.push(trNodes[i]);

     arr[0]=arr[1];
                                          //为什么这样就复制就不行 
                alert(arr[1].cells[1].innerHTML)
                alert(arr[0].cells[1].innerHTML)
            }
    不是很明白你的意思  dom的list和数组还是有区别的  
    dom的list不能修改 就是说domlist[0]=domlist[1]是无效的   
    你把他放到数组里试试 看是不是你要的效果
      

  2.   

    思路有点乱不好意思啦
    首先我提取了var trNodes=tableNode.rows;这个应该看得懂 
    第一种方式对集合进行复制var arr=trNodes;
       然后就会发现
       arr[0]=arr[1];                                      //为什么这样就复制就不行 
       alert(arr[1].cells[1].innerHTML);
       alert(arr[0].cells[1].innerHTML);
       这样的打印结果是不同的
       arr[0].cells[1].innerHTML=arr[1].cells[1].innerHTML;  
       这样的打印结果是相同的
    第二种方式对集合进行复制
       var arr1=new Array(trNodes.length-1);
                for(var x=0;x<arr1.length;x++)
                {
                    arr1[x]=trNodes[x+1];
                }
       这时arr1[0]=arr1[1];是可以复制过来的
    也就是说这种复制方法应该与上述第一种复制方法是不相同的
    我想问的是是什么原因引发的这种差别
       还有就是
                arr1[1].cells[1].innerHTML=arr1[2].cells[1].innerHTML;       
                alert(arr1[2].cells[1].innerHTML);
                alert(arr1[1].cells[1].innerHTML);                        
                alert(trNodes[2].cells[1].innerHTML);                        
                alert(arr[2].cells[1].innerHTML);  
       当改动了arr1[1].cells[1].innerHTML中的数时原有集合的和第一种复制方式中集合的数值也改变了
    这是不是可以说明他们在内存中指的是一个地方?如果是那为什么还会引发上面的那个问题?                         
                                                                           
      

  3.   


    举个例子吧,arr[0].cells[1]跟arr[1].cells[1]假如都是一个人,IT专业术语叫对象,
    你永远是你,不是能等于他,顶多去高丽棒子那整容像他,innerHTML就是这个意思,这就是一个人的外表,
    但是他的DNA永远都是他,它的ID也不能改,最多就是把一个对象的内容给复制过来,换上而已。
      

  4.   

    那arr1[1].cells[1].innerHTML=arr1[2].cells[1].innerHTML;       
                alert(arr1[2].cells[1].innerHTML);
                alert(arr1[1].cells[1].innerHTML);                        
                alert(trNodes[2].cells[1].innerHTML);                        
                alert(arr[2].cells[1].innerHTML);  
    应该怎么解释呢 arr1[1].cells[1].innerHTML的外表变了
    为什么会引发arr[2]与trNodes[2]的外表改变呢