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

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

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

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

12345678_0001 2024-01-22 20:54:49
因此,我嘗試創建一個輸入列表,其中包含從對象數組中獲取的唯一值。但由于某種原因,它只迭代一次并停止。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然而,在我運行該程序后,我只有一個里面有一個包含 bob 的輸入。另一個沒去哪里。我嘗試打印以查看是否調用了第二個循環,但似乎沒有。我不知道為什么,被困了幾個小時。
查看完整描述

2 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

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


查看完整回答
反對 回復 2024-01-22
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

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



查看完整回答
反對 回復 2024-01-22
  • 2 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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