2010-08-17 6 views
0

supose i ont tr comme ceci:changement objet HTML à l'intérieur objet cloné

<tr id="file" > 
      <td width="510"><div align="right"><span class="star"> *</span> 
       <input type="text" name="title" style="width:500px;direction:ltr" /> 
      </div></td> 
      <td width="156" nowrap="nowrap"><div align="right">file </div></td> 
      </tr> 

et je dois créer un lien en bas de page qui me laisser faire une action mon code js est:

$(function(){ 

     $(".add").click(function(e){ 
      e.preventDefault(); 
      var copy =$('#file').clone().removeAttr('id').insertBefore($('.submit')) ; 


      console.log('add called') ; 
     }); 

     $('.remove').click(function(e){ 
      e.preventDefault(); 
      console.log('remove called '); 
     });  


    }) ; 

si l'utilisateur a d'abord entré du texte dans la première entrée j'ai le même texte dans la copie, je veux effacer l'entrée après que je crée la copie. réservoirs

Répondre

0

Vous pouvez utiliser .find() et .val('') dans la chaîne pour effacer la valeur, comme ceci:

$('#file').clone().removeAttr('id').insertBefore('.submit') 
        .find('input').val(''); 

Cette recherche dans l'élément cloné pour effacer le <input> qu'il trouve. Si vous devez être plus précis plus tard, vous pouvez utiliser .find('input[name=title]'). Si vous avez besoin de cette référence copy, il suffit d'ajouter un .end() après l'appel .val('') afin que vous référençant le <tr> et non le <input>.

+0

ça ne fonctionne pas .val() quoi? jquery doit savoir – mehdi

+0

@mehdi - Vous lui passez une chaîne vide comme dans l'exemple ci-dessus, cela la met à vide. * Pas * passer quelque chose aurait la valeur. –