亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用本地存儲中的數據元素將 <li> 添加到 <ul>

如何使用本地存儲中的數據元素將 <li> 添加到 <ul>

一只斗牛犬 2022-07-08 17:52:09
所以我正在嘗試創建一個具有唯一值的輸入列表,這些值是從一組對象中獲取的。但由于某種原因,它只迭代一次并停止。function loadLayer() {//Get the object from local storagevar project = JSON.parse(localStorage.getItem('project'));var projectLayers = project.layersfor (var x = 0; x < projectLayers.length; x++) {    var x = createLayer(projectLayers[x].name)    appendLayer(x)  }}所以項目層基本上是一個數組[{id=1,name="bob},{id=2,name="kevin"}]function createLayer(name) {  var li = document.createElement("li");  li.className = "list-group-item"  var x = document.createElement("INPUT")  x.setAttribute("type", "text")  x.setAttribute("value", name)  li.appendChild(x)  return li}function appendLayer(layer) {  var layerList = document.getElementById("layerList")  layerList.appendChild(layer)}并且 appendlayer 只是將 li 添加到 ul但是,在我運行程序后,我只有一個里面有一個帶鮑勃的輸入。另一個沒有去哪里。我嘗試打印以查看是否調用了第二個循環,但看起來不像。我不知道為什么,被困了幾個小時。
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

就像您被告知的那樣,您需要小心命名變量的方式。其次,我還建議使用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>


查看完整回答
反對 回復 2022-07-08
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

您將循環中的迭代變量命名為,xvar x = createLayer(projectLayers[x].name)與它發生沖突,更改其中之一。



查看完整回答
反對 回復 2022-07-08
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號