Java 脚本找不到该元素

java script unable to find the element

本文关键字:元素 找不到 脚本 Java      更新时间:2023-09-26

这是我的问题:

当我说getelementbyid("table1")时,它说"Uncatch TypeError:无法设置null的属性'innerHTML'"

我正在通过 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 日食朱诺

页面加载后不能使用document.write。它替换了内容。如果您想查看其中的内容,请使用console.log(jobj);

其次,如果您打算将此代码与 IE 一起使用,则无法在 HTML 中设置表。

第三,不要使用eval()来转换JSON。使用JSON.parse()

document.write(mayur)

整个文档(包括表)替换为 mayur 的值,因为您在加载文档后调用它。目前您正在尝试访问 ID 为 table1 的元素,它不再存在。

解决方案:不要使用 document.write .

更多信息: MDN - document.wite