2012-07-06 238 views
0

我需要將克隆元素的值留空。克隆div也克隆文本值

下面的代碼很好用,但它克隆了值;無法弄清楚如何制止這種情況。

var Move = { 

    copy : function(e, target) { 
       var eId  = $(e); 
       var copyE = eId.cloneNode(true); 
       var cLength = copyE.childNodes.length -1; 
       copyE.id = e+'-copy'; 

       for(var i = 0; cLength >= i; i++) { 
        if(copyE.childNodes[i].id) { 
        var cNode = copyE.childNodes[i]; 
        var firstId = cNode.id; 
        cNode.value = ''; 
        cNode.id = firstId+'-copy'; } 
       } 

       $('txtWoundCareLocation').value=""; 
       $(target).appendChild(copyE); 
       }, 
    element : function(e, target, type) { 
       var eId = $(e); 
       if(type == 'move') { $(target).appendChild(eId); } 

       else if(type == 'copy')  { 
        this.copy(e, target); 
       } 
       } 
} 
+0

那麼,什麼是這個代碼的目的是什麼? – 2012-07-06 07:46:26

+0

克隆一個div,包含所有子元素 – prospector 2012-07-06 08:14:52

+0

但是會丟失每個子元素的內容? – 2012-07-08 06:55:08

回答

0

eId.cloneNode(true) returns an jQuery object,不是HTMLNode。因此 copyE包含一個不是HTMLNode的jQuery對象。但是,您將它用作HTMLNode。這應該引入問題。

此外,jQuery對象的設置值(如 $('txtWoundCareLocation').value="")不會改變HTMLNode值。相反,您應該調用 jQuery.val方法來取消設置HTMLNode值: $('txtWoundCareLocation').val('');

我認爲這是關於jQuery的。我沒有成爲原型,對不起。

+0

這是原型JS不是jQuery的,我想這是JQ – prospector 2012-07-06 13:49:43

+0

的$(「txtWoundCareLocation」)VAL(「」)。 does not work with prototype,but $('txtWoundCareLocation')。value ='';但是,這只是刪除了我不想要的原始文本。我需要副本空白 – prospector 2012-07-06 13:51:28

0

在複製年底將這個:

$(cnode.id).value="";