我正在尝试在JavaScript中将数组打印到textarea。我当前的代码只打印第一个元素而不是全部四个,我不知道为什么。我也尝试过使用常规for循环,但这没有什么区别。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var listArray = function()
{
var people = ["Ben", "Joel", "Mary", "Tina"];
var scores = [88, 98, 100, 78];
for (var key in people)
{
var obj = people[key];
var num = scores[key];
var string = obj + ", " + num + "\n";
document.getElementById("box").innerHTML = string;
}
}
window.onload = function()
{
document.getElementById("show_score").onclick = showHighScore;
document.getElementById("list_array").onclick = listArray;
}
</script>
</head>
<body>
<form id="high_score" name="high_score" action="highScore.html" method="get">
<label>Results</label>
<br>
<textarea cols="50" rows="4" id="box"></textarea>
<br>
<input type="button" value="List Array" id="list_array" onclick="listArray">
<br>
<input type="button" value="Show Best Score" id="show_score" onclick="showHighScore">
</form>
</body>
</html>
答案 0 :(得分:2)
那是因为这一行
document.getElementById("box").innerHTML = string;
所以你要说的是,用textbox
的内容替换string
的内容。所以最后它只有最后一个元素的值。
使用此代替
document.getElementById("box").innerHTML += string;
所以它会在前一个记录之后追加下一个记录。
还有一个问题,在第23行,sasys showHighScore
未定义。