我有一个分配,如果我将0数组传递给函数,则只需要向现有表中添加一个行。但是,当我通过分配检查器运行代码时,它总是说我在进行两行。结果,我一直未能通过单元测试。
该作业还指出,我不允许使用insertCell和/或insertRow,因为这会导致自动分级器出现问题。
我对这个问题的解决方法是,如果数组的总和等于0,则获取ID为distributionTable
的现有表,并向其添加一行。我使用浏览器检查工具进行调试,以确保HTML中存在一行。
下面是我在JavaScript中创建的函数:
function setTableContent(userInput) {
let gradeArray = parseScores(userInput);
let distArray = buildDistributionArray(gradeArray);
let sum = 0
for (let i = 0; i < distArray.length; i++) {
sum = sum + distArray[i];
}
if (sum <= 0) {
var table = document.getElementById("distributionTable")
row = table.appendChild(document.createElement("tr"));
}
}
下面是提供的HTML页面,将从JavaScript对其进行修改:
<!DOCTYPE html>
<html>
<head>
<style>
.bar0 { vertical-align: bottom; background-color: #00C000; }
.bar1 { vertical‐align: bottom; background-color: #309000; }
.bar2 { vertical‐align: bottom; background-color: #606000; }
.bar3 { vertical‐align: bottom; background-color: #903000; }
.bar4 { vertical‐align: bottom; background-color: #C00000; }
td { vertical-align: bottom }
</style>
<script src="index.js"></script>
</head>
<body onload="bodyLoaded()">
<table style="border: 2px solid black" id="distributionTable">
</table>
</body>
</html>
如果您还有其他问题或建议,请告诉我。谢谢!
答案 0 :(得分:1)
自动分级机似乎很混乱。
我敢打赌,评分员正在检查table.childNodes.length
而不是table.children.length
。
它应该只检查子节点,而不是childNodes。
编辑: 只需完成分配任务(他们会固定平地机),您就可以执行以下操作
table.innerHTML = "";
table.appendChild(document.createElement('tr'));