如何用JavaScript删除HTML中的所有表格?

ash*_*lal 2 html javascript html-table

如何删除网页中的所有表格?表中没有与之关联的任何ID.

Joe*_*orn 12

非常简单的版本:

var tables = document.getElementsByTagName("TABLE");
for (var i=tables.length-1; i>=0;i-=1)
   if (tables[i]) tables[i].parentNode.removeChild(tables[i]);
Run Code Online (Sandbox Code Playgroud)


bob*_*nce 5

危险!getElementsByTagName返回"实时"NodeList.在Joel的代码中,删除元素0会将列表中的项目向下移动,这样当您删除元素1时,您就错过了一个.

可能的替代方案:如果你知道你总是要删除每个元素,你可以使用while循环:

var tables= document.getElementsByTagName('table');
while (tables.length>0)
    tables[0].parentNode.removeChild(tables[0]);
Run Code Online (Sandbox Code Playgroud)

或者,如果您可能删除或不删除,但迭代顺序不重要,请向后浏览列表:

var tables= document.getElementsByTagName('table');
for (var i= tables.length; i-->0;)
    tables[i].parentNode.removeChild(tables[i]);
Run Code Online (Sandbox Code Playgroud)

如果您可能或者可能不会删除并且需要向前迭代,那么您必须复制列表处于繁琐的位置:

function toArray(l) {
    var a= [];
    for (var i= 0; i<l.length; i++)
        a[i]= l[i];
    return a;
}

var tables= toArray(document.getElementsByTagName('table'));
for (var i= 0; i<tables.length; i++)
    ...
Run Code Online (Sandbox Code Playgroud)