如何删除HTML表中除<th>
使用Javascript 之外的所有行,并且不循环遍历表中的所有行?我有一个非常大的表,我不想在循环浏览各行以删除它们时冻结UI
如何删除HTML表中除<th>
使用Javascript 之外的所有行,并且不循环遍历表中的所有行?我有一个非常大的表,我不想在循环浏览各行以删除它们时冻结UI
Answers:
将该<th>
行保留在a中<thead>
,将其他行保留在a中,<tbody>
然后将其替换为<tbody>
一个新的空白行。
即
var new_tbody = document.createElement('tbody');
populate_with_new_rows(new_tbody);
old_tbody.parentNode.replaceChild(new_tbody, old_tbody)
document.getElementById('tbody').innerHTML = '';
这将删除所有行:
$("#table_of_items tr").remove();
$("tbody#id tr").remove()
非常粗糙,但这也可以:
var Table = document.getElementById("mytable");
Table.innerHTML = "";
<th>
嵌套在中则可以<thead>
。无论如何,这可能是在语法上最正确的构建表的方式。
var bodyRef = document.getElementById('myTable').getElementsByTagName('tbody')[0];
bodyRef.innerHTML = '';
这是一个老问题,但是我最近也遇到了类似的问题。
我写了这段代码来解决它:
var elmtTable = document.getElementById('TABLE_ID_HERE');
var tableRows = elmtTable.getElementsByTagName('tr');
var rowCount = tableRows.length;
for (var x=rowCount-1; x>0; x--) {
elmtTable.removeChild(tableRows[x]);
}
这将删除除第一行以外的所有行。
干杯!
注意要注意的常见错误:
如果您的起始索引为0(或某个起始索引),则正确的代码为:
var tableHeaderRowCount = 1;
var table = document.getElementById('WRITE_YOUR_HTML_TABLE_NAME_HERE');
var rowCount = table.rows.length;
for (var i = tableHeaderRowCount; i < rowCount; i++) {
table.deleteRow(tableHeaderRowCount);
}
笔记
1. deleteRow的参数是固定的,
这是必需的,因为当我们删除一行时,行数会减少。
即 到我到达(rows.length-1)的时间,或者甚至在该行已被删除之前,所以您将遇到一些错误/异常(或无提示的异常)。
2. rowCount是在for循环开始之前进行的,
因为当我们删除“ table.rows.length”时,它会不断变化,因此又遇到了一些问题,只有奇数或偶数的行才被删除。
希望能有所帮助。
假设您只有一个表,那么您仅可以使用类型来引用它。如果您不想删除标题:
$("tbody").children().remove()
除此以外:
$("table").children().remove()
希望能帮助到你!
将一些ID关联到tbody标签。即。此后,以下行应保留表的页眉/页脚并删除所有行。
document.getElementById("yourID").innerHTML="";
而且,如果您希望擦除整个表格(页眉/行/页脚),请在表格一级设置ID,即
如果您不希望删除th
而只希望删除其中的行,则此方法非常有效。
var tb = document.getElementById('tableId');
while(tb.rows.length > 1) {
tb.deleteRow(1);
}
如果<th>
行数比非<th>
行数少得多,则可以将所有<th>
行收集到一个字符串中,删除整个表,然后写出<table>thstring</table>
该表以前的位置。
编辑:显然,“ thstring”是<th>
s的所有行的html 。
<th>
s作为DOM元素收集,清除表的innerHTML,然后将<th>
s再次附加到表中。
removeChild
仅使用单个DOM元素。