gpt4 book ai didi

javascript - 将名称添加到数组并将其输出到表中

转载 作者:行者123 更新时间:2023-11-28 16:39:14 25 4
gpt4 key购买 nike

我在让我的代码运行时遇到一些问题。这就是我到目前为止所拥有的。

function outputNamesAndTotal() {
var name;
var outputTable;
var inputForm;
var nameArray;
var outputDiv;

outputDiv = document.getElementById("outputDiv");
inputForm = document.getElementById("inputForm");
outputTable = document.getElementById("outputTable");
name = inputForm.name.value;
nameArray = [];

nameArray.push(name);


for (var i = 0; i > nameArray.length; i++) {

outputTable.innerHTML += "<tr>" + nameArray[i] + "</tr>";

}

inputForm.name.focus();
inputForm.name.select();


return false;

}

当我添加循环时,它完全破坏了代码,但我不明白为什么。

我想做的是使用 HTML 表单从用户那里获取名称。用户输入名称后,程序会将名称添加到数组中,并将每个数组条目输出到表中的一行。

这是非常基本的,但它仍然给我带来各种麻烦!

最佳答案

我认为您每次调用该函数时都会清除名称数组。你应该带上这条线:

nameArray = [];

走出去并使其​​全局化。

我进行了快速测试,以下代码至少可以在 FireFox 中运行

编辑为使用appendChild

<html>
<head>
<script type='text/javascript'>
var names = [];
function addName() {
var nameTxt = document.getElementById('name_txt');
var name = nameTxt.value;
names.push(name);
var outTable = document.getElementById('out_tbl');

var row = document.createElement('tr');
var entry = document.createElement('td');
var txt = document.createTextNode(name);

entry.appendChild(txt);
row.appendChild(entry);
outTable.appendChild(row);


var numDiv = document.getElementById('num_div');
removeAllChildren(numDiv);
var numTxt = document.createTextNode('You have ' + names.length + ' names');
numDiv.appendChild(numTxt);
}
function removeAllChildren(e) {
while (e.hasChildNodes()) {
e.removeChild(e.firstChild);
}
}
</script>
</head>
<body>
<table id='out_tbl'>
</table>
<div id='num_div'>You have 0 names</div>
<input id='name_txt' type='text'/>
<button onclick="addName()">CLICK</button>
</body>
</html>

编辑:哦,是的,您每次都在循环数组。如果您“全局化”名称数组,则每次添加名称时都会打印整个数组。

编辑 x2:您最初发布的代码将 nameArray 作为函数内的局部变量。每次调用该函数时,这都会有效地清除数组。然后,每次调用该函数时,您都会将当前名称添加到现在为空的数组中,并循环遍历该数组现在保存的所有 1(一)个元素。

您想要做的是“全局化”名称数组,并从函数中删除循环。这将允许您跨多个调用构建名称数组,并按照您想要的方式工作。

此外,innerHTML 并不是向页面添加内容的最佳方式。我建议使用appendChild()。

-C

关于javascript - 将名称添加到数组并将其输出到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com