【发布时间】:2018-05-30 04:13:58
【问题描述】:
我正在尝试创建一个应用程序,您可以在其中注册一组数字,然后这些数字将显示在表格中。我可以注册第一组数字,但是如果我更改数字并再次按注册,我将不会获得新行。相反,它会更新同一行。
基本上我试图让这个程序以按下注册按钮将创建一个新行的方式工作。
window.onload = oppdater;
function oppdater() {
document.getElementById("btnRegistrer").onclick = registrer;
}
function registrer() {
var arrayListe = [];
var reg = {};
var verdi0 = parseInt(document.getElementById("txtUke").value);
var verdi1 = parseInt(document.getElementById("txtAntmiddager").value);
var verdi2 = parseInt(document.getElementById("txtBarn").value);
var verdi3 = parseInt(document.getElementById("txtUngdom").value);
var verdi4 = parseInt(document.getElementById("txtVoksne").value);
arrayListe.push(verdi0);
arrayListe.push(verdi1);
arrayListe.push(verdi2);
arrayListe.push(verdi3);
arrayListe.push(verdi4);
var tabell = document.getElementById("tblTabell");
var rute = 0;
var nyBestilling = document.createElement("tr");
for (var i = 0; i < 5; i++) {
var rad = document.createElement("td");
rad.id = "rute"+i;
rute++;
nyBestilling.appendChild(rad);
}
tabell.appendChild(nyBestilling);
for (var j = 0; j < 5; j++) {
var inputt = document.getElementById("rute"+j);
inputt.innerHTML = arrayListe[j];
}
}
</script>
</head>
<body>
<h1>Bestillinger</h1>
<p>Uke nr: <input type="text" id="txtUke"></input></p>
<p>Antall middager: <input type="text" id="txtAntmiddager" max="3" min="2"></input></p>
<p>Antall barn: <input type="text" id="txtBarn"></input></p>
<p>Antall ungdom: <input type="text" id="txtUngdom"></input></p>
<p>Antall voksne: <input type="text" id="txtVoksne"></input></p>
<button id="btnRegistrer">Registrer</button>
<table id="tblTabell">
<tr><th>Uke</th><th>Ant. middager</th><th>Ant. barn</th><th>Ant. ungdom</th><th>Ant. voksne</th></tr>
</table>
</body>
【问题讨论】:
-
Prefer
NumbertoparseInt,parseInt对前导零的行为非常奇怪(将它们解析为八进制)。如果您必须获取“整数”值,则首选Number.parseInt并传递基数参数:Number.parseInt(string, 10)。 -
您在复制 ID。对于每一行。 ID 意味着每个页面都是唯一的。避免所有麻烦并在附加到表之前填充 td innerHTML,而不是在添加后获取它们。
标签: javascript arrays html-table