Comment copier le tableau avec la ligne clone dans jquery et créer de nouvelles unique Ids pour les contrôles

voix
33

Comment copier le tableau avec la ligne clone dans jquery et créer de nouvelles Ids unique pour la controls.Clone copiera acually données aussi .i ne veulent pas de données à copier.

La ligne de la table contient les informations suivantes:

<tr> 
     <td><input type=text id=txtTitle name=txtTitle></td> 
     <td><input type=text id=txtLink name=txtLink></td> 
</tr> 

Je dois créer ids uniques pour toutes les nouvelles lignes, comme txtTitle1, link1, Title2, lien2 etc.

Créé 17/08/2010 à 17:02
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
80

Vous pouvez faire quelque chose comme ceci:

var i = 1;
$("button").click(function() ​​​{
  $("table tr:first").clone().find("input").each(function() {
    $(this).val('').attr('id', function(_, id) { return id + i });
  }).end().appendTo("table");
  i++;
})​;​

Cela viderait les valeurs pour les nouvelles lignes et de leur donner des identifiants uniques commençant par txtTitle1, txtTile2, etc.

Ca vous l' essayer ici . Si vous avez besoin de changer le nametrop je passe un objet à .attr()garder un peu plus propre, comme ceci:

var i = 1;
$("button").click(function() {
  $("table tr:first").clone().find("input").each(function() {
    $(this).attr({
      'id': function(_, id) { return id + i },
      'name': function(_, name) { return name + i },
      'value': ''               
    });
  }).end().appendTo("table");
  i++;
});​

Vous pouvez essayer cette version ici .

Créé 17/08/2010 à 18:02
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more