2012-07-06 2 views
0

J'ai besoin de la valeur de l'élément cloné.Le clonage d'une div clone également les valeurs de texte

Le code ci-dessous fonctionne bien, mais c'est le clonage des valeurs; Je n'arrive pas à comprendre comment arrêter ça.

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

Alors, quel est le but de ce code? –

+0

clone a div, avec tous les éléments enfants – prospector

+0

Mais perdre le contenu de chaque élément enfant? –

Répondre

0

eId.cloneNode(true) returns an jQuery object, pas HTMLNode. Ainsi, copyE contient un objet jQuery et non un HTMLNode. Vous l'utilisez comme un HTMLNode cependant. Cela devrait introduire des problèmes. De même, la définition d'une valeur sur un objet jQuery (comme dans $('txtWoundCareLocation').value="") ne modifie pas la valeur HTMLNode. , Vous devriez plutôt appeler la méthode jQuery.val de désinitialiser la valeur HTMLNode: $('txtWoundCareLocation').val('');

Je pensais que c'était sur jQuery. Je ne suis pas en prototype, désolé.

+0

Ceci est le prototype js pas jQuery, je souhaite qu'il était jQ – prospector

+0

le $ ('txtWoundCareLocation'). Val (''); ne fonctionne pas avec le prototype, mais $ ('txtWoundCareLocation'). value = ''; fait, cependant, cela supprime simplement le texte original, que je ne veux pas. J'ai besoin des copies vierges – prospector

0

Mettre cela à la fin de la copie:

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