我使用jQuery将一行添加到表格的末尾。我是这样做的:
$('#myTable').append('<tr><td>my data</td><td>more data</td></tr>');
在这样的表格中,您可以添加的内容是否有限制(例如输入、选择、行数)?是否有其他方法来做到这一点?
$('#myTable').append('<tr><td>my data</td><td>more data</td></tr>');
在这样的表格中,您可以添加的内容是否有限制(例如输入、选择、行数)?是否有其他方法来做到这一点?
如果这里发布的最佳解决方案中有一个嵌套表格在最后一行,新行将添加到嵌套表格而不是主表格中。下面是一个快速解决方案(考虑包含/不包含tbody和嵌套表格的表格):
function add_new_row(table, rowcontent) {
if ($(table).length > 0) {
if ($(table + ' > tbody').length == 0) $(table).append('<tbody />');
($(table + ' > tr').length > 0) ? $(table).children('tbody:last').children('tr:last').append(rowcontent): $(table).children('tbody:last').append(rowcontent);
}
}
使用示例:
add_new_row('#myTable','<tr><td>my new row</td></tr>');
我曾经遇到一些相关问题,试图在点击的行后插入一个表格行。所有都很好,除了对于最后一行,.after() 没有起作用。
$('#traffic tbody').find('tr.trafficBody).filter(':nth-child(' + (column + 1) + ')').after(insertedhtml);
我最终得到了一个非常零乱的解决方案:
按照以下方式创建表格(每行都有id):
<tr id="row1"> ... </tr>
<tr id="row2"> ... </tr>
<tr id="row3"> ... </tr>
等等,然后:
$('#traffic tbody').find('tr.trafficBody' + idx).after(html);
// Create a row and append to table
var row = $('<tr />', {})
.appendTo("#table_id");
// Add columns to the row. <td> properties can be given in the JSON
$('<td />', {
'text': 'column1'
}).appendTo(row);
$('<td />', {
'text': 'column2',
'style': 'min-width:100px;'
}).appendTo(row);
<tbody>
和没有<tbody>
的表格,并且考虑了你最后一行表格的跨列情况。// One table
addTableRow($('#myTable'));
// add table row to number of tables
addTableRow($('.myTables'));
我的解决方案:
//Adds a new table row
$.fn.addNewRow = function (rowId) {
$(this).find('tbody').append('<tr id="' + rowId + '"> </tr>');
};
用法:
$('#Table').addNewRow(id1);
tbody
,又怎样呢?这意味着即使没有任何标题,也可以在 <table>
元素内直接放置行。 - shashwat尼尔的答案迄今为止是最好的答案。然而,事情很快变得混乱起来。我的建议是使用变量来存储元素,并将它们附加到DOM层次结构中。
HTML
<table id="tableID">
<tbody>
</tbody>
</table>
JAVASCRIPT
// Reference to the table body
var body = $("#tableID").find('tbody');
// Create a new row element
var row = $('<tr>');
// Create a new column element
var column = $('<td>');
// Create a new image element
var image = $('<img>');
image.attr('src', 'img.png');
image.text('Image cell');
// Append the image to the column element
column.append(image);
// Append the column to the row element
row.append(column);
// Append the row to the table body
body.append(row);
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
<tr>...</tr>
</table>
使用JavaScript函数编写
document.getElementById("myTable").insertRow(-1).innerHTML = '<tr>...</tr><tr>...</tr>';
$('#myTable').append('<tr><td>'+data+'</td><td>'+other data+'</td>...</tr>');
<td>
标签中访问它。希望这种方式能够有所帮助。var table = $('#yourTableId');
var text = 'My Data in td';
var image = 'your/image.jpg';
var tr = (
'<tr>' +
'<td>'+ text +'</td>'+
'<td>'+ text +'</td>'+
'<td>'+
'<img src="' + image + '" alt="yourImage">'+
'</td>'+
'</tr>'
);
$('#yourTableId').append(tr);