【问题标题】:How to get UL and LI value dynamically in jquery如何在 jquery 中动态获取 UL 和 LI 值
【发布时间】:2018-09-22 23:40:15
【问题描述】:

我有一个简单的 ul 和 li 标签,其中包含状态和大写字母,这里我需要动态地从 json 获取所有数据并附加到类“详细信息”的主 div 中,这里我只是硬编码但实际上它应该来自下面以同样的方式给出的json。这是下面的代码

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="details">
<ul>
<li>state</li>
<li>
<ul>state1</ul>
<ul>state2</ul>
</li>
<li>capital</li>
<li>
<ul>capital1</ul>
<ul>capital2</ul>
</li>
</ul>
</div>

jquery

​​>
$(document).ready(function () {
     $.ajax({
     type: "GET",
     url: "sample.json",
     success: function(result)
     {
     console.log(result);

     }
     });

    });

json

{
    "state": [{
            "name": "state1"
        },
        {
            "name": "state2"
        }
    ],
    "capital": [{
            "name": "capital1"
        },
        {
            "name": "capital2"
        }
    ]
}

【问题讨论】:

    标签: javascript jquery html json ajax


    【解决方案1】:

    警告:您建议的标记不是valid (Error: Text not allowed in element ul in this context.)。即便如此,听起来它是这个任务的合适输出。

    我假设您的 Ajax 请求正在运行,并返回一个有效的 JSON 结构作为 result 变量。

    设置完毕,下面是生成结构的代码:

    const result = {
      "state": [
        {"name": "state1"},
        {"name": "state2"}
      ],
      "capital": [
        {"name": "capital1"},
        {"name": "capital2"}
      ]
    };
    
    const root = document.createElement("ul");
    document.querySelector(".details").appendChild(root);
    
    for (const key in result) {
      const title = document.createElement("li");
      title.innerText = key;
      root.appendChild(title);
    
      const list = document.createElement("li");
      root.appendChild(list);
      
      for (const o of result[key]) {
        const ul = document.createElement("ul");
        ul.innerText = o.name;
        list.appendChild(ul);
      }
    }
    &lt;div class="details"&gt;&lt;/div&gt;

    【讨论】:

    • 您好 ggorlen,感谢您的回答,但是在这里我无法更改 ul li 结构,因为我将它用于手风琴。 ul li 中的那些值应该完全通过上面给出的 json 文件的 json 值通过 ajax 调用来呈现,以显示我刚刚对其进行了硬编码。
    • 我无法复制您的 Ajax 调用,因此您需要发布到 sample.json 的绝对路径,这样我才能生成一个完整的、可运行的示例。但由于这似乎不是问题(您收到的是 JSON 响应,对吗?),我建议从您的问题中删除该组件以生成 minimal example。至于结构,还要发布完整的、最少的代码以显示您正在尝试做的事情,即使用手风琴和基本原理。标记对我来说似乎是一个错误,但这只是在答案中移动几个元素标签的问题。
    • 这里我试图从 json 中获取,我试图通过来自 json 的脚本和数据创建
      并附加到类的
    • 中state1,但它不起作用。这是我的 plunker 链接plnkr.co/edit/CpLAZZwtmJG9KnOPfISX?p=preview
  • 嗯,你没有使用我的代码,你的 JS 脚本没有运行。这工作正常:plnkr.co/edit/a5Low4AeI6NSO2ynqMi0.
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签