object.mergeAttributes(oSource [, bPreserve]);  //用这个方法可以把所有的属性都拷贝过去

解决方案 »

  1.   

    我是想去掉属性,好像checkbox跟其他元素不一样,明明取得的属性已经为checked=false,但显示出来还是选中的
      

  2.   


    oCheck[j].checked=false;--->>>oCheck[j].defaultChecked=false;
      

  3.   

    把checked改为defaultChecked是可以解决问题,可是不能够解释问题。为何oCheck[j].value="";是对的呢?还有,为何oCheck[j].defaultValue=""是错的呢?我们在clone的时候应该何时default何时不用呢?我觉得IE在这方面可能自己都没有统一的规范。
      

  4.   

    问题出在元素被clone之后,被insert之前。我们也可以通过改变操作的次序来回避这个问题:function cloneE() {
    var oTD = document.getElementsByTagName('td');
       var cloneN = oTD[oTD.length-1].cloneNode(true);
       var cloneNode = document.body.insertBefore(cloneN);
    test.appendChild(cloneN);
       var oCheck = cloneNode.getElementsByTagName("input");   
       for(j=0;j<oCheck.length;j++) {
         if(oCheck[j].type=="checkbox") {
     oCheck[j].checked=false;
     }
     if(oCheck[j].type=="text") {
      oCheck[j].value="";
     }

    }
      

  5.   

    是啊,先显示出来在赋值就可以
    问题时在显示时,我怀疑是不是因为checkbox和select一样,是比较特殊的表单元素的缘故