如何清除表格单元格中的先前内容

时间:2017-04-29 15:50:14

标签: javascript

我正在尝试在我的表中添加一个“清除”功能来计算总数。因此,当人第一次按下进行计算的按钮,然后更改产品数量然后再次按下时,先前的答案将被清除并重新添加。

我试过这样的话:

function clear () {
    var table = document.getElementById("pricetable");
    var rows = table.getElementsByTagName("tr");

    for (var i = 0; i < rows.length; i++) {
        rows[i].className = "";
        var cells = rows[i].getElementsByTagName("td");

        for (var j = 1; j < cells.length - 1; j++) {
            cells[j].className = "";
        }
    }
}

然后我在上一个函数的开头调用函数来计算金额和价格:

function calculate () {
    clear ();
    ... 
}

但没有任何反应。我认为这可能与我创建最后一行以及最后一列(两者都包括总计)的动态有关。该行的id为lastRow,该列没有id。

我不想使用jquery或将类,id等添加到html文件中。那么有人知道我的代码有什么问题吗?

2 个答案:

答案 0 :(得分:1)

className只是清除样式。

您正在寻找innerHTML

...
for (var j = 1; j < cells.length - 1; j++) {
    cells[j].innerHTML = "";
}
...

className指的是应用于元素的CSS类名。这是您当前代码的作用:

之前

<td class='foo'>999</td>

<td class=''>999</td>

innerHTML几乎就是这么说的:

之前

<td class='foo'>999</td>

<td class='foo'></td>

另外,我刚注意到你的for循环从1开始。希望这是故意的;)

答案 1 :(得分:0)

我可以看到您将className设置为空而不是将innerHTML设置为空...

尝试替换它:

cells[j].className = "";

有了这个:

cells[j].innerHTML = "";