jQuery ajoute une colonne de tableau HTML

J’ai un tableau HTML comme ceci:

DELETE ROWCOL 1 DELETE COLCOL 2 DELETE COLCOL 3 DELETE COLCOL 4 DELETE COLCOL 5 DELETE COLCOL 6
ROW 1 ROW 1 ROW 1 ROW 1 ROW 1 ROW 1
ROW 2 ROW 2 ROW 2 ROW 2 ROW 2 ROW 2

Ce dont j’ai besoin, c’est d’une fonction pour append une nouvelle colonne avec un nombre de td basé sur d’autres colonnes. Le fait est que dans cette table HTML, les colonnes sont supprimées avec jQuery avant l’ajout de nouvelles colonnes; la fonction doit donc obtenir la configuration de la colonne actuelle et l’adapter en conséquence, car les lignes et les colonnes sont toujours supprimées ou ajoutées.

J’ai ce code pour append une nouvelle colonne mais il n’ajoute pas l’en-tête:

 function addACol() { var currentNumberOfTDsInARow = $('.tblModel tr:first td').length; newColNum = currentNumberOfTDsInARow; var rows = $('.tblModel tbody tr'); for (var i = 0; i < rows.length; i++) { var lastTDClone = $(rows[i]).find('td:last').clone(); $(rows[i]).find('td:last').after(lastTDClone); } } 

Mettre à jour…

 var c = $("#myTable tr:first td").length; $("#myTable tr:first").append("Delete Col "+(c+1)+""); $("#myTable tr:gt(0)").append("Col"); 

Si vous devez corriger la numérotation dans les titres, vous pouvez utiliser la fonction sur laquelle nous avons travaillé dans votre question précédente .

Réponse originale …

 $("#myTable tr").append("New Column"); 

Ou, si vous souhaitez également append un en-tête, vous pouvez limiter la ligne précédente à tous les TR supérieurs à 0:

 $("#myTable tr:gt(0)").append("New Column"); 

Et l’en-tête ne serait que sur le premier TR:

 $("#myTable tr:first").append("Delete Column LINK"); 

Pas lié à votre question mais vous pouvez rendre votre bit HTML plus sémantique.

 
DELETE ROWCOL 1 DELETE COLCOL 2 DELETE COLCOL 3 DELETE COLCOL 4 DELETE COLCOL 5 DELETE COLCOL 6
ROW 1 ROW 1 ROW 1 ROW 1 ROW 1 ROW 1
ROW 2 ROW 2 ROW 2 ROW 2 ROW 2 ROW 2

Le code jQuery modifié peut ressembler à:

 var c = $("#myTable thead th").length; $("#myTable thead tr").append("Delete Col "+(c+1)+""); $("#myTable tr:gt(0)").append("Col");