我正在尝试在我的表中添加一个“清除”功能来计算总数。因此,当人第一次按下进行计算的按钮,然后更改产品数量然后再次按下时,先前的答案将被清除并重新添加。
我试过这样的话:
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文件中。那么有人知道我的代码有什么问题吗?
答案 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 = "";