2012-07-06 170 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="";