在JavaScript中将数组打印到textarea

时间:2014-09-27 01:29:07

标签: javascript html

我正在尝试在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>

1 个答案:

答案 0 :(得分:2)

那是因为这一行

document.getElementById("box").innerHTML = string;

所以你要说的是,用textbox的内容替换string的内容。所以最后它只有最后一个元素的值。

使用此代替

document.getElementById("box").innerHTML += string; 

所以它会在前一个记录之后追加下一个记录。

还有一个问题,在第23行,sasys showHighScore未定义。