Javascript 使用JQuery将JSON数组放入HTML列表
我有一个JSON文件,它将一些数据存储为一个对象数组: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
{
"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获取元素的,而不是创建新元素。