Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery将JSON数组放入HTML列表_Javascript_Html_Jquery_Dom_Html Lists - Fatal编程技术网

Javascript 使用JQuery将JSON数组放入HTML列表

Javascript 使用JQuery将JSON数组放入HTML列表,javascript,html,jquery,dom,html-lists,Javascript,Html,Jquery,Dom,Html Lists,我有一个JSON文件,它将一些数据存储为一个对象数组: { "projects": [ { "title": "title0", "content": "content0" }, { "title": "title1", "content": "co

我有一个JSON文件,它将一些数据存储为一个对象数组:

{
  "projects": [
    {
        "title": "title0",
      "content": "content0"
    },
    {
      "title": "title1",
      "content": "content1"
    },
    {
      "title": "title2",
      "content": "content2"
    }
  ]
}
我正在使用JQuery尝试将它们一个接一个地放到列表中:

$.getJSON("projects.json", function( data ) {
    console.log(typeof jsondataect);
    var features = document.getElementById('featuredProjects');
    var ul = document.createElement('ul');
    for (var i = 0; i < data.length; ++i) {
      var li = document.createElement('li');
    $('li').html(data[i].content);
      ul.appendChild(li);                                 
    }
    features.appendChild(ul);  
});
$.getJSON(“projects.json”),函数(数据){
console.log(jsondataect的类型);
var features=document.getElementById('featuredProjects');
var ul=document.createElement('ul');
对于(变量i=0;i
但这会在我的文档中生成一个空的HTML列表。 我希望HTML列出JSON数组的元素,如下所示:

<div>
    <ul>
        <li>title0</li>
        <li>content0</li>
        <li>title1</li>
        <li>content1</li>
        <li>title2</li>
        <li>content2</li>
    </ul>
</div>

  • 标题0
  • 内容0
  • 标题1
  • 内容1
  • 标题2
  • 内容2

我做错了什么?

您的主要问题是,您试图在
数据中循环,这只是一件事,一个名为
的对象投影了
。您需要循环查看
data.projects
,包括在
for()
中使用
data.projects.length
。另外,除了一行jQuery之外,您已经在常规javascript中完成了大部分工作,所以我将其更改为常规JS。但自从那条线开通后,它无论如何都不会起作用

$('li').html(data[i].content);
表示“查找页面上的每个
  • 元素,并将其内部文本更改为
    数据[i]。内容
    。我将其更改为只使用您之前所做的
    li
    引用,并使用innerHTML而不是
    $(id).html()

    最后,我看到在你的标题中,你想在jQuery中这样做。所以我添加了第二个循环来演示如何做到这一点

    window.onload=()=>{
    风险值数据={
    “项目”:[{
    “标题”:“标题0”,
    “内容”:“内容0”
    },
    {
    “标题”:“标题1”,
    “内容”:“内容1”
    },
    {
    “标题”:“标题2”,
    “内容”:“内容2”
    }
    ]
    }
    var features=document.getElementById('featuredProjects');
    var ul=document.createElement('ul');
    对于(变量i=0;i{
    新推送(“
  • ”+obj.title+“
  • ”); 新推送(“
  • ”+obj.content+“
  • ”) }) //加入所有李的团队 $('featuredProjectsJQ').html(“
      ”+新加入(“+”
    ”) }
    
    正规JS
    jQueryJS
    
    将for循环中的“data.length”替换为“data.projects.length”应该可以解决这个问题。而且,您需要有一个id名为“featuredProjects”的HTML元素,因为您是通过id获取元素的,而不是创建新元素。