2 回答
TA贡献1786条经验 获得超12个赞
就像您被告知的那样,您需要小心命名变量的方式。其次,我还建议使用let而不是var。因为您可以轻松地覆盖在其初始范围之外使用var声明的变量。
现在到您的代码: 我对您的代码进行了一些编辑,尤其是loadLayer 函数,并将两个名称附加到列表中:
<script>
let projectList = [
{
id:1,
name:"bob"
},
{
id:2,
name:"kevin"
}
]
function loadLayer() {
window.localStorage.setItem('project', JSON.stringify(projectList));
let p = JSON.parse(window.localStorage.getItem('project'));
for (let i = 0; i < p.length; i++) {
let projectName = createLayer(p[i].name)
appendLayer(projectName)
}
}
function createLayer(name) {
let li = document.createElement("li");
li.className = "list-group-item"
let x = document.createElement("INPUT")
x.setAttribute("type", "text")
x.setAttribute("value", name)
li.appendChild(x)
return li
}
function appendLayer(layer) {
let layerList = document.getElementById("layerList")
layerList.appendChild(layer)
}
loadLayer()
</script>
TA贡献1777条经验 获得超10个赞
您将循环中迭代的变量命名为 as ,x
如果var x = createLayer(projectLayers[x].name)
与它发生冲突,请更改其中之一。
- 2 回答
- 0 关注
- 80 浏览
添加回答
举报