Man*_*era 20 html jquery html-table
我有一个像这样的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>
Run Code Online (Sandbox Code Playgroud)
我需要的是一个函数来添加一个基于其他列的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);
}
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*son 43
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>");
Run Code Online (Sandbox Code Playgroud)
如果您需要修改标题中的编号,可以使用我们在上一个问题中处理的功能.
$("#myTable tr").append("<td>New Column</td>");
Run Code Online (Sandbox Code Playgroud)
或者,如果您也想添加标题,可以将前一行限制为大于0的所有TR:
$("#myTable tr:gt(0)").append("<td>New Column</td>");
Run Code Online (Sandbox Code Playgroud)
标题只在第一个TR上:
$("#myTable tr:first").append("<td>Delete Column LINK</td>");
Run Code Online (Sandbox Code Playgroud)
Sol*_*ogi 10
与您的问题无关,但您可以使您的HTML更具语义.
<table border="1">
<thead>
<tr>
<th><a href="#" class="delete">DELETE ROW</a>COL 1</th>
<th><a href="#" class="delete">DELETE COL</a>COL 2</th>
<th><a href="#" class="delete">DELETE COL</a>COL 3</th>
<th><a href="#" class="delete">DELETE COL</a>COL 4</th>
<th><a href="#" class="delete">DELETE COL</a>COL 5</th>
<th><a href="#" class="delete">DELETE COL</a>COL 6</th>
</tr>
</thead>
<tbody>
<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>
Run Code Online (Sandbox Code Playgroud)
修改后的jQuery代码可能如下所示:
var c = $("#myTable thead th").length;
$("#myTable thead tr").append("<th><a href=''>Delete</a> Col "+(c+1)+"</th>");
$("#myTable tr:gt(0)").append("<td>Col</td>");
Run Code Online (Sandbox Code Playgroud)