我有一个这样的HTML表:
<table border="1"> <tbody> <tr> <td><a href="#" class="delete">DELETE ROW</a>COL 1</td> <td><a href="#" class="delete">DELETE COL</a>COL 2</td> <td><a href="#" class="delete">DELETE COL</a>COL 3</td> <td><a href="#" class="delete">DELETE COL</a>COL 4</td> <td><a href="#" class="delete">DELETE COL</a>COL 5</td> <td><a href="#" class="delete">DELETE COL</a>COL 6</td> </tr> <tr> <td>ROW 1</td> <td>ROW 1</td> <td>ROW 1</td> <td>ROW 1</td> <td>ROW 1</td> <td>ROW 1</td> </tr> <tr> <td>ROW 2</td> <td>ROW 2</td> <td>ROW 2</td> <td>ROW 2</td> <td>ROW 2</td> <td>ROW 2</td> </tr> </tbody> </table>
我需要的是添加一个基于其他列的td的新列的功能。事实是,在这个HTML表格中,在添加新列之前,使用jQuery删除列,因此该函数需要获取当前的列配置并相应进行调整,因为行和列总是被删除或添加。
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); } }
解决方法
更新中…
var c = $("#myTable tr:first td").length; $("#myTable tr:first").append("<td><a href=''>Delete</a> Col "+(c+1)+"</td>"); $("#myTable tr:gt(0)").append("<td>Col</td>");
如果您需要修正标题中的编号,可以使用the function we worked on in your previous question。
原始答案…
$("#myTable tr").append("<td>New Column</td>");
或者,如果您还要添加标题,可以将上一行限制为大于0的所有TR:
$("#myTable tr:gt(0)").append("<td>New Column</td>");
标题只会在第一个TR:
$("#myTable tr:first").append("<td>Delete Column LINK</td>");