Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除HTML表中的所有行_Javascript_Html_Html Table - Fatal编程技术网

Javascript 删除HTML表中的所有行

Javascript 删除HTML表中的所有行,javascript,html,html-table,Javascript,Html,Html Table,如何使用Javascript删除HTML表中除之外的所有行,而不循环表中的所有行?我有一个非常大的表,我不想在循环遍历行以删除它们时冻结UI。如果您的行远远少于非行,您可以将所有行收集到一个字符串中,删除整个表,然后在表所在的位置写入thstring 编辑:其中,“thstring”显然是s所有行的html。将行保留在中,其他行保留在中,然后用新的空行替换 i、 e 这是一个老问题,但我最近遇到了一个类似的问题。 我写了这段代码来解决这个问题: var elmtTable = document.

如何使用Javascript删除HTML表中除
之外的所有行,而不循环表中的所有行?我有一个非常大的表,我不想在循环遍历行以删除它们时冻结UI。如果您的
行远远少于非
行,您可以将所有
行收集到一个字符串中,删除整个表,然后在表所在的位置写入
thstring

编辑:其中,“thstring”显然是
s所有行的html。

行保留在
中,其他行保留在
中,然后用新的空行替换

i、 e


这是一个老问题,但我最近遇到了一个类似的问题。
我写了这段代码来解决这个问题:

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]);
}
这将删除除第一行以外的所有行


干杯

非常粗糙,但这也有效:

var Table = document.getElementById("mytable");
Table.innerHTML = "";

这将删除所有行:

$("#table_of_items tr").remove(); 

我需要删除除@strat发布的第一行和解决方案之外的所有行,但这导致了未捕获的异常(引用上下文中不存在的节点)。以下几点对我有用

var myTable = document.getElementById("myTable");
var rowCount = myTable.rows.length;
for (var x=rowCount-1; x>0; x--) {
   myTable.deleteRow(x);
}

假设您只有一个表,因此可以仅使用类型引用它。
如果不想删除标题,请执行以下操作:

$("tbody").children().remove()
否则:

$("table").children().remove()

希望有帮助

只需清理桌面即可

$("#tblbody").html("");

这在IE中工作,甚至不必为表声明var,并将删除所有行:

for(var i = 0; i < resultsTable.rows.length;)
{   
   resultsTable.deleteRow(i);
}
for(var i=0;i
这是我刚刚编写的一个简单代码,用于解决此问题,无需删除标题行(第一行)


希望它对你有用

注意点,在上,注意常见错误:

如果起始索引为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);
}
var tableHeaderRowCount=1;
var table=document.getElementById('WRITE_YOUR_HTML_table_NAME_HERE');
var rowCount=table.rows.length;
对于(var i=tableHeaderRowCount;i
注释

1。deleteRow的参数是固定的
这是必需的,因为当我们删除一行时,行数会减少
即;当我到达(rows.length-1)时,或者甚至在该行已被删除之前,您将遇到一些错误/异常(或静默异常)

2。在for循环开始之前进行行计数 因为当我们删除“table.rows.length”时,它会不断变化,所以您也会遇到一些问题,只有奇数行或偶数行才会被删除


希望这会有所帮助。

如果您不想删除
th
而只想删除其中的行,这将非常有效

var tb = document.getElementById('tableId');
  while(tb.rows.length > 1) {
  tb.deleteRow(1);
}
这个怎么样:

首次加载页面时,请执行以下操作:

var myTable = document.getElementById("myTable");
myTable.oldHTML=myTable.innerHTML;
然后,当您要清除表格时:

myTable.innerHTML=myTable.oldHTML;

结果将是您的标题行,如果这是您开始的全部内容,那么性能将大大快于循环。

这将在本机的HTML表中进行迭代删除

document.querySelectorAll("table tbody tr").forEach(function(e){e.remove()})

如果可以为
tbody
声明
ID
,则只需运行此函数:

var node = document.getElementById("tablebody");
while (node.hasChildNodes()) {
  node.removeChild(node.lastChild);
}

下面的代码非常有效。 它删除除标题行以外的所有行。所以这段代码真的不正确

$("#Your_Table tr>td").remove();

为您的tbody分配id或类

document.querySelector("#tbodyId").remove();
document.querySelectorAll(".tbodyClass").remove();

您可以根据需要命名id或类,而不一定是
#tbodyId
.tbodyClass

将某些id分配给tbody标记。即。在此之后,下一行应保留表格页眉/页脚并删除所有行

document.getElementById("yourID").innerHTML="";

并且,如果希望删除整个表(页眉/行/页脚),则在表级别设置id,即

const table=document.querySelector('table'); table.innerHTML==''?null:table.innerHTML=''; 上面的javascript对我来说很好。它检查表中是否包含任何数据,然后清除包括标题在内的所有内容。

@lkan为我工作,但是要离开第一行,请更改

for(var x=rowCount-1;x>1;x--)
完整代码:

var myTable=document.getElementById(“myTable”);
var rowCount=myTable.rows.length;
对于(var x=rowCount-1;x>1;x--){
myTable.deleteRow(x);
}

必须有一个循环,没有“删除多个元素”命令,方法
removeChild
只接受一个DOM元素。@SLaks假设他指的是包含标题行的行,将
收集为DOM元素,清除表的innerHTML,然后再次将
附加到它。小心,如果要使用innerHTML属性替换clear tbody,它在IE中不起作用,但有一个解决方法。这是最简单有效的解决方案,当然前提是允许JavaScript开发人员修改HTML。请注意,如果要使用innerHTML属性替换tbody,它在IE中不起作用,不过还有一个变通办法。@Eonasdan-这有点主观。如果有人想用其中一个解决这个问题,那么有很多图书馆(我个人的偏好是现在使用YUI 3)。不管你想包含多少第三方代码,原则都是一样的。。。有什么问题:
document.getElementById('tbody')。innerHTML=''@trees4森林对我来说很好。可能在OP.shorter(和更快)的时候是不可能的:var rowCount=myTable.rows.length;而(--rowCount)myTable.deleteRow(rowCount);如果不想删除标题:$(“#table_of_items tbody tr”).remove(),则上述注释中的代码不会删除第一行;非常简单的回答。我在我的咖啡脚本中使用了-我喜欢单线解决方案
$(“tbody#id tr”)。remove()
我认为这是比公认的答案更好的答案,尽管它是
document.querySelector("#tbodyId").remove();
document.querySelectorAll(".tbodyClass").remove();
document.getElementById("yourID").innerHTML="";
for (var x=rowCount-1; x>0; x--)