Javascript 如何从表格单元格中清除以前的内容

Javascript 如何从表格单元格中清除以前的内容,javascript,Javascript,我正在尝试向我的表中添加一个“清除”函数,用于计算总数。这样,当人们第一次按下进行计算的按钮,然后改变产品数量,然后再次按下时,先前的答案将被清除并添加新的内容 我试过这样做: function clear () { var table = document.getElementById("pricetable"); var rows = table.getElementsByTagName("tr"); for (var i = 0; i < rows.leng

我正在尝试向我的表中添加一个“清除”函数,用于计算总数。这样,当人们第一次按下进行计算的按钮,然后改变产品数量,然后再次按下时,先前的答案将被清除并添加新的内容

我试过这样做:

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 = "";
        }
    }
}
但什么也没发生。我在想,这可能与我动态创建了最后一行和最后一列(两者都包括总计)有关。行的id为lastRow,列没有id


我不想使用jquery或向html文件添加类、ID等。有人知道我的代码出了什么问题吗?

className
只是清除了样式设置

您正在查找
innerHTML

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

之后




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

我可以看到您正在将
className
设置为nothing,而不是将
innerHTML
设置为nothing

尝试替换此:

cells[j].className = "";
为此:

cells[j].innerHTML = "";

可能是因为您正在设置
className
属性,而您需要使用其他东西吗?欢迎您在一个很好的问题上做一些非常好的工作!谢谢现在,它清除了所有内容。但我希望最后一列和最后一行第四和第五(即最后一个)单元格被清除。。你知道我应该如何更改代码吗?不客气!访问
n
th单元格可能是您在
for
循环中要做的事情,从您想要影响的范围开始和结束。否则,您将不得不通过索引访问数组的成员,即
单元格[5]。innerHTML=''
单元格[cells.length-1]。innerHTML=''
。是的,谢谢<代码>单元格[5]。innerHTML=“”按我希望的方式清除最后一列。但在第4列中,我只希望清除最后一行的单元格。。我尝试使用
var last=document.getElementByID(“lastRow”).cells[7]访问它
然后
last.innerHTML=“”但它并没有达到我希望它达到的效果。好吧,我们已经超出了问题的范围(因此社区喜欢每个问题一个主题),但你的思路是正确的-你现在要寻找的是访问行数组:
var lastRow=rows[rows.length-1];lastRow.getElementsByTagName('td')[7].innerHTML='
。谢谢,我现在就知道了!
<td class=''>999</td>
<td class='foo'>999</td>
<td class='foo'></td>
cells[j].className = "";
cells[j].innerHTML = "";