我需要克隆元素的值为空。
下面的代码运行良好,但它正在克隆值;无法弄清楚如何阻止它。
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 :(得分: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="";