Avec jquery, j'ajoute dynamiquement des lignes. Pour ce faire, je suis en train de copier le premier de la table et ensuite avec une regex je change les noms et parfois les ids de quelque chose comme "column_name [0]" à "column_name [1]". C'est la regex que j'utilise:Utilisation d'une variable changeante dans nextAll de JQuery()
newRow = newRow.replace(new RegExp("\\[[0-9]+][\"\']", "gm"), "[" + $("#rowNum").val() + "]\"");
Cela fonctionne très bien.
J'ajoute aussi un lien pour supprimer dynamiquement cette ligne. Ce lien de suppression a le JQuery suivant exécuté sur un clic:
$(this).parents(\"tr.deletable\").remove();
Ceci fonctionne également bien.
Maintenant, mon problème est lorsqu'un utilisateur ajoute 3 lignes, puis supprime la première ligne. Je veux que les deux dernières lignes décrémentent leur numéro d'index. Par exemple column_name [2] deviendrait column_name [1]. Comment devrais-je faire cela? Voici ce que j'ai essayé jusqu'à présent:
$(this).parents("tr.deletable").nextAll().html().replace(new RegExp("\\[[0-9]+][\"\']", "gm"), "[" + i + "]\"");
J'ai je mis à 50 juste pour voir si elle met avec succès que comme le nouvel indice, mais il ne fonctionne pas. Je n'ai pas compris en douceur obtenir la valeur décrémentée. Le code ci-dessus ne fonctionne pas.
Quelqu'un at-il des suggestions sur la façon dont je peux accomplir cela? Quant à savoir pourquoi j'ai besoin de faire cela, c'est parce que j'utilise Java Struts et il faut que tous les éléments de formulaire aient un nom avec un index approprié à la fin.
Etes-vous sûr que cela ne fonctionne pas seulement avec fieldname []? – cletus