使用console.log
我可以看到来自其他网页的价值,但是当我使用document.getElementById('abc').innerHTML = xyz.age;
放置此值时,它会给我Uncaught TypeError: Cannot set property 'innerHTML' of null
错误
我的JS
xyz = JSON.parse(sessionStorage.getItem("details"));
document.getElementById('abc').innerHTML = xyz.age; //getting error from here
console.log(xyz.age);
你能帮我解决吗?
答案 0 :(得分:1)
此示例使用您的代码,您可能在dom完全加载之前执行脚本?尝试将代码包装在document.addEventListener("DOMContentLoaded")
:
document.addEventListener("DOMContentLoaded", function() {
// code...
});
document.addEventListener("DOMContentLoaded", function() {
xyz = { age: 24 }; // Mock data from localstorage
document.getElementById('abc').innerHTML = xyz.age;
console.log(xyz.age);
});
<div id="abc"></div>
答案 1 :(得分:-1)
问题不在于xyz,而在于document.getElementById(&#39; abc&#39;)。 &#39; ABC&#39;脚本执行时找不到,元素不存在,或者文档准备好之前脚本正在运行。
如果是后者,则可能需要在加载文档后在回调函数中执行脚本。见https://www.w3schools.com/jsref/event_onload.asp