JavaScript:删除动态创建的表

JavaScript : Delete dynamically created table

本文关键字:创建 动态 删除 JavaScript      更新时间:2023-09-26

我是web开发的新手,正在努力删除动态创建的表。

下面是当用户单击按钮时创建表的JavaScript函数。

function DrawTable(data){
                  var oTHead = myTable.createTHead();
                  var oTFoot = myTable.createTFoot();
                  var oCaption = myTable.createCaption();
                  var oRow, oCell;
                  var i, j;
                  var heading = new Array();
                  heading[0] = "AAA";
                  heading[1] = "BBB";
                  heading[2] = "CCC";
                  heading[3] = "DDD";
                  var tableData = data.split(':');
                  // Insert a row into the header.
                  oRow = oTHead.insertRow(-1);
                  oTHead.setAttribute("bgColor","lightskyblue");
                  // Insert cells into the header row.
                  for (i=0; i < heading.length; i++)
                  {
                    oCell = oRow.insertCell(-1);
                    oCell.align = "center";
                    oCell.style.fontWeight = "bold";
                    oCell.innerHTML = heading[i];
                  }
                   // Insert rows and cells into bodies.
                  for (i=0; i < tableData.length; i++)
                  {
                    var oBody = oTBody0;
                    oRow = oBody.insertRow(-1);
                    var splitData = tableData[i].split(',');
                    for (j=0; j < splitData.length; j++)
                    {
                      oCell = oRow.insertCell(-1);
                      oCell.innerHTML = splitData[j];
                    }
                  }
            }

上面的代码工作得很好,当用户点击按钮时就会绘制表格。

如果用户再次点击按钮,它将再次绘制表格。

即它将再次绘制另一个标题和所有行。

在这一点上,我想删除现有的标题和行,并将其全部绘制为新的。

我尝试了很多方法来删除现有的表,但都不起作用。

有没有办法确保表格不再重复?

更新

HTML部分是:

<table id="myTable">
                <tbody ID="oTBody0"></tbody>
            </table>

另一更新

我在下面试了一下,结果成功了。

oTHead.innerHTML = "";
oTBody0.innerHTML = "";
jQuery提供了一个可以使用的.empty()函数
$("#myTable").empty();

或者使用javascript,您可以将innerHTML设置为空

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

在开始尝试向表中添加新内容之前,只需执行此函数即可。

//$("#myTable").empty();
document.getElementById("myTable").innerHTML = "";
// Insert a row into the header.
oRow = oTHead.insertRow(-1);
oTHead.setAttribute("bgColor","lightskyblue");
// Insert cells into the header row.
for (i=0; i < heading.length; i++) {
    oCell = oRow.insertCell(-1);
    oCell.align = "center";
    oCell.style.fontWeight = "bold";
    oCell.innerHTML = heading[i];
}

由于您使用的是jQuery,请执行以下操作:$('#containerIdThatYourTableSitsIn').html('');

这将清除html中表所在的任何元素。然后重新加载它。

编辑

正如评论所提到的,.empty()是另一个选项。