克隆div也是克隆文本值

时间:2012-07-06 07:41:52

标签: javascript prototypejs

我需要克隆元素的值为空。

下面的代码运行良好,但它正在克隆值;无法弄清楚如何阻止它。

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);
                }
                }
}

2 个答案:

答案 0 :(得分:0)

eId.cloneNode(true) returns an jQuery object,而不是HTMLNode。因此copyE包含jQuery对象而不是HTMLNode。您正在使用它像HTMLNode。这应该引入问题。

此外,在jQuery对象上设置值(如在$('txtWoundCareLocation').value=""中)不会改变HTMLNode值。相反,您应该调用jQuery.val方法取消设置HTMLNode值:$('txtWoundCareLocation').val('');

我认为这是关于jQuery的。抱歉,我不是原型。

答案 1 :(得分:0)

将它放在副本的末尾:

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