1

Javascript でテーブルが表示されないというこの問題が発生しています。ユーザーが10個window.promptの数字を入力すると、配列に入れられてテーブルに表示される場所で機能すると想定されています。

コードは次のとおりです。

<html>
<head>
<meta charset = "utf-8">
<script type = "text/javascript">

var number = -99;
var array1 = new Array(10);

number = window.prompt("Enter 1 to continue \n Enter -99 to exit");
if(number == -99 || number == ""){
    exit();
}else
    array1 = window.prompt("Please enter 10 numbers to be stored into an array");

    function outputArray(heading, theArray, output){
    var content = "<h2>" + heading + "</h2><table><thead><th>Index</th><th>Value</th></thead><tbody>";
    var length = theArray.length;
    for(var i=0; i<length;++i){
    content += "<tr><td>" + i + "</td><td>" + theArray[i] + "</td></tr>";
    }
    content += "</tbody></table>";
    output.innerHTML = content;
    }

    outputArray("Your Array is:", array1, document.getElementById("output"));
</script>
</head>
<body>
<div id="output"></div>
</body>
</html>
4

1 に答える 1

1

スクリプトを onload ハンドラーでラップする必要があります。

var onLoadHandler = function() {
    var number = -99;
    var array1 = new Array(10);

    number = window.prompt("Enter 1 to continue \n Enter -99 to exit");
    if(number == -99 || number == ""){
        exit();
    }else
        array1 = window.prompt("Please enter 10 numbers to be stored into an array");

        function outputArray(heading, theArray, output){
            var content = "<h2>" + heading + "</h2><table><thead><th>Index</th><th>Value</th></thead><tbody>";
            var length = theArray.length;
            for(var i=0; i<length;++i){
            content += "<tr><td>" + i + "</td><td>" + theArray[i] + "</td></tr>";
            }
            content += "</tbody></table>";
            output.innerHTML = content;
        }

        outputArray("Your Array is:", array1, document.getElementById("output"));
}
if (window.addEventListener) {
    window.addEventListener('load', onLoadHandler, false);
} else if (window.attachEvent) {
    window.attachEvent('onload', onLoadHandler );
}

つまり、DOM 要素を操作しようとしていますが、まだ存在していない可能性があります。

于 2013-09-21T20:09:20.220 に答える