目前,我正在将表单数据(单个文本字段)推送到空数组,以便每次单击“提交”时间。数据被推送到数组的末尾(因此,数组变大)
我的体验: 我想在表格中输出每个元素,但我想每行一个元素,但现在它每行输出
第一行:输入数据并按一次提交 - > enteredData
第二行:输入更多数据并按下提交 - > enteredData enteredData1
如果我输入另一个元素 enteredData enteredData1 enteredData2 依旧等等......
这是我循环的代码块: userInputName.push(userString);
for (arrayIndex = 0; arrayIndex < userInputName.length; arrayIndex++) {
output.innerHTML += "<tr><td>" + userInputName[arrayIndex] + "</td></tr>";
}
我觉得我在for循环中缺少某种条件逻辑,但此时(睡眠太少)我无法理性地将它拼凑在一起:|
有关我失踪的建议吗?
这就是我的完整javascript代码块的样子 - 我可以将此引用到我的其他线程,询问相关问题:
//Declare global variable
var userInputName = [];
function displayTableAndTotals() {
// Your code goes in here.
//var totalStrings = [];
var userString;
var arrayIndex;
var output;
var outputTotal;
var form;
form = document.getElementById("userFormId");
output = document.getElementById("userEntriesId");
outputTotal = document.getElementById("testId");
userString = form.string.value;
userInputName.push(userString);
for (arrayIndex = 0; arrayIndex < userInputName.length; arrayIndex++) {
output.innerHTML += "<tr><td>" + userInputName[arrayIndex] + "</td></tr>";
}
form.string.select();
return false;
}
答案 0 :(得分:1)
你可以添加推送的元素
var table = document.querySelector('#myTable');
document.querySelector('[type="submit"]').addEventListener('click', function(e) {
table.innerHTML += "<tr><td>" + userInputName.reverse()[0] + "</td></tr>";
}, false);
答案 1 :(得分:0)
好悲伤,当然我解决了自己的问题,因为我花了很长时间的痛苦,然后咨询。
基本上我需要这样做:
for (arrayIndex = 0; arrayIndex < userInputName.length; arrayIndex++) {
tableData = "<tr><td>" + userInputName[arrayIndex] + "</td></tr>";
totalCount = userInputName.length;
}
output.innerHTML += tableData;
outputTotal.innerHTML = "<h4>Total Number of Strings: " + totalCount + "</h4>";
form.string.select();
return false;
这样tableData变量将包含一个新的迭代,而不是每次都重新提交整个事物。这样我就可以在循环外输出tableData了。
我很感谢收到的反馈。
谢谢!