我试图找到答案,但是有太多变量在起作用,所以我希望你们中的一些人可以向我解释这里发生了什么。 我有一个带有div的基本HTML页面,其中包含" issuesList"标识。
<!DOCTYPE html>
<html>
<head>
</head>
<body onload="foo();">
<div id="issuesList"></div>
<script src="main.js"></script>
</body>
</html>
这是我的main.js:
function foo(){
//var issues = JSON.parse(localStorge.getItem('issues'));
var issuesList = document.getElementById('issuesList');
document.getElementById('issuesList').setAttribute("style", "color:red;")
issuesList.setAttribute("style", "color:red;");
issuesList.innerHTML = 'XYZ';
}
localStorage是空的,因此它没有问题&#39;对象
如果我将注释行注释掉,则issuesList DOM元素将显示以红色显示的XYZ。如果我取消注释它,则issuesList元素保持为空。我不明白为什么会这样。
另外,如果我添加&#39;问题&#39;到localStorage,并再次调用foo()方法,仍然没有显示在&#39; issuesList&#39;元件。
谢谢
答案 0 :(得分:1)
这里是代码,已修复:
function foo(){
var issues = JSON.parse(localStorage.getItem('issues') || "[]");
var issuesList = document.getElementById('issuesList');
issuesList.style.color = "red";
issuesList.innerHTML = 'XYZ';
}
如果issues
中没有任何内容,则会将localStorage
设置为空数组。我还删除了中间的多余线。
(你也有一个错字:localStorge
;总是检查你的浏览器控制台)
编辑:它实际上似乎主要归结为错字。如果该项目不在localStorage中,则尝试获取该项目将返回null
,并将其解析为JSON也会返回null
。
附加说明:localStorage
可以存储对象;存储时无需stringify
,因此在加载时不需要parse
。