0

ここに私の問題があります:

getelementbyid("table1") と言うと、「Uncaught TypeError: Cannot set property 'innerHTML' of null」と表示されます

以下に示すように、Javaスクリプトを介して動的テーブルをレンダリングしています:

function mainProcessing()
{
        <% ProductController pc=new ProductController();%>

        var val = <%=pc.doTask()%>
        var jobj=JSON.stringify(val);
        document.write(jobj);
        alert(jobj);

         var obj=JSON.parse(jobj);
        alert("jobj");
        alert(obj.toString());
        var object = eval("(" + jobj+ ")");

        alert("this part is done");
        return object;
}
function drawtable()
{
    var JSONObj=mainProcessing();
    var tablecontents = "";
    for (var i = 0; i < 5; i ++)
   {
      tablecontents += "<tr>";
      tablecontents += "<td>" + i + "</td>";
      tablecontents += "<td>" + i * 100 + "</td>";
      tablecontents += "<td>" + i * 1000 + "</td>";
      tablecontents += "</tr>";
   }

 document.write(JSONObj.toString());       
    alert("just outside nested loop");
   document.getElementById("table1").innerHTML = tablecontents;
}

テストのために、テーブルにランダムな値を挿入しました。

そのhtml部分は次のようになります。

<title>Indian Divine !!!</title>
</head>
<body onload="drawtable()">
<center>
<h1>my name is jobj</h1>
    <table id="table1">

    </table>
</center>
</body>
</html>

ブラウザのユーザーは Chrome です。IDE エクリプス ジュノ

4

2 に答える 2

3

document.writeページ読み込み後はご利用いただけません。内容を置き換えます。その中に何が入っているかを見ようとしている場合は、console.log(jobj);

第 2 に、このコードを IE で使用する場合は、表の innerHTML を設定できません

eval()第三に、 JSON の変換には使用しないでください。使用するJSON.parse()

于 2013-09-11T12:30:12.380 に答える
2

document.write(mayur)ドキュメント全体 (表を含む) を の値に置き換えますmayur。これは、ドキュメントが読み込まれた後に呼び出しているためです。ID の要素にアクセスしようとしている時点で、table1もう存在しません。

解決策: を使用しないでくださいdocument.write

詳細: MDN - document.wite

于 2013-09-11T12:29:09.643 に答える