【问题标题】:Outputting array elements one at a time一次输出一个数组元素
【发布时间】:2015-02-11 22:17:33
【问题描述】:

目前我正在将表单数据(单个文本字段)推送到一个空数组,以便每次单击“提交”时,数据都会被推送到数组的末尾(因此,数组会变大)

我正在经历的事情: 我想输出表格中的每个元素,但我想每行一个元素,但现在它每行输出这样的

第一行:数据输入并提交一次 -> 输入数据

第二行:输入更多数据并按下提交 -> 输入数据 输入数据1

如果我输入另一个元素,它会 输入数据 输入数据1 输入数据2 等等等等....

这是我循环的代码块: 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;   
}

【问题讨论】:

  • 贴出部分代码。
  • @dfsq,我更新了我的原始帖子以包含完整的 javascript 块

标签: javascript arrays innerhtml elements


【解决方案1】:

你可以只添加推送的元素

var table = document.querySelector('#myTable');

document.querySelector('[type="submit"]').addEventListener('click', function(e) {
    table.innerHTML += "<tr><td>" + userInputName.reverse()[0] + "</td></tr>";
}, false);

【讨论】:

    【解决方案2】:

    天哪,当然,在我花费了永远的痛苦和咨询之后,我自己解决了自己的问题。

    基本上我需要这样做:

    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。

    感谢我收到的反馈。

    谢谢!

    【讨论】:

      猜你喜欢
      • 2017-11-03
      • 2019-06-25
      • 1970-01-01
      • 2016-12-31
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多