javascript - 如何在不取回先前创建的 Elemnts 的情况下将新创建的 Li 添加到 Localstorage
问题描述
我有一个 UL,它有一个默认的 Li,如果需要,还可以创建其他 Li 问题是,一旦我从本地存储加载 HTML,它会复制默认元素,而不是新元素+当前,我试图给新创建的元素一个特定的类,并使用通过类名获取元素以及查询选择器,这两种方法都返回了未定义的 HTML 集合或节点列表,任何解决此问题的方法我可以将新创建的元素隔离到本地存储。感谢您提前付出的努力和时间。
const dayslist = document.getElementById('list');
function create() {
const createLi = `<li>new</li><li>new</li><li>new</li><li>new</li>`;
dayslist.innerHTML += createLi;
let html = dayslist.innerHTML;
localStorage.setItem('content', html);
}
function onLoad() {
if (localStorage.getItem('content')) {
dayslist.innerHTML += localStorage.getItem('content');
}
}
onLoad();
<!DOCTYPE html>
<html>
<body>
<h1>The ul element</h1>
<ul id=list>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
<div onclick="create()">
<span>create!!</span>
</div>
</ul>
</body>
<script src="/js.js"></script>
</html>
解决方案
function create() {
const dayslist = document.getElementById('list');
const createLi = `<li>new</li>`;
dayslist.innerHTML += createLi;
// Appending the newly created LIs and storing into local storage
const prevContent = localStorage.getItem('content');
const newContent = prevContent ? prevContent + createLi : createLi;
localStorage.setItem('content', newContent);
}
推荐阅读
- protractor - 我如何在此处与收件箱进行交互。Protractor 中可以使用哪些属性?
- c++ - 获取对 function_name 的未定义引用
- excel - 单行表的索引匹配数组公式错误
- java - 在 java 密钥库中导入两个证书(ca.pem 和密钥证书)以连接到 mongodb 时出现问题
- python - 使用 if 语句修改行值
- reactjs - 在 useState 环境中模拟 setState 的第二个参数。在 setState 发生后让某些事情发生
- xml - 在 foreach 循环中连接字符串时结果错误
- javascript - RxJS groupBy,mergeMap,从数组中发出每个单个值。最佳实践?
- python - 根据索引编辑(替换/添加)字符串
- python - DataFrame 连接问题