Javascript 在HTML中显示Json数组
这里可能有什么错误。我需要将这个名字列表添加到Javascript 在HTML中显示Json数组,javascript,html,Javascript,Html,这里可能有什么错误。我需要将这个名字列表添加到 var text='['+ “{”姓“:”约翰“,”姓“:”多伊“},”+ “{”姓“:”安“,”姓“:”史密斯“},”+ “{”姓“:”彼得“,”姓“:”琼斯“}]; var arr=JSON.parse(文本); var列表=职能部门(员工){ for(雇员长度中的var i){ document.getElementById(“demo”).innerHTML+=''+employee[i].firstName+''; } }; 列表(ar
var text='['+
“{”姓“:”约翰“,”姓“:”多伊“},”+
“{”姓“:”安“,”姓“:”史密斯“},”+
“{”姓“:”彼得“,”姓“:”琼斯“}];
var arr=JSON.parse(文本);
var列表=职能部门(员工){
for(雇员长度中的var i){
document.getElementById(“demo”).innerHTML+=''+employee[i].firstName+' ';
}
};
列表(arr)代码>
您不应该在
中使用for…来迭代数组
这应该行得通
function list(employees) {
var html = '';
employees.forEach(function (employee) {
// Beware of XSS/HTML injection vulnerabilities here;
// the name is not sanitized and could contain HTML.
// Implementing sanitization is left as an exercise for the reader.
html += '<li>' + employee.firstName + '</li>';
});
// Only edit innerHTML once.
document.getElementById("demo").innerHTML += html;
};
list([ // Let's assume JSON.parse() has been called already.
{ firstName: 'John', lastName: 'Doe' },
{ firstName: 'Ann', lastName: 'Smith' },
{ firstName: 'Peter', lastName: 'Jones' },
]);
功能列表(员工){
var html='';
employees.forEach(功能(员工){
//注意这里的XSS/HTML注入漏洞;
//该名称未经过清理,可能包含HTML。
//实施卫生处理留给读者作为练习。
html+=''+employee.firstName+' ';
});
//仅编辑innerHTML一次。
document.getElementById(“demo”).innerHTML+=html;
};
list([//假设已经调用了JSON.parse()。
{姓:“约翰”,姓“多伊”},
{姓:“安”,姓:“史密斯”},
{姓:'彼得',姓:'琼斯'},
]);
问题是您正在使用。。以错误的方式在循环中。
看一看。它的设计目的是迭代可数对象属性。所以你最好改用
但在我的示例中,我还使用函数将对象数组转换为字符串数组,将其连接为一个字符串,并设置为目标节点的innerHTML
我还在我的代码片段中添加了关于使用+=
案例的注释。您可能会发现,您希望在列表中添加新值之前清除列表,因此最好只将值分配给innerHTML
,因此使用array.map
构建列表内容可能是更好的选择
const text='['+
“{”姓“:”约翰“,”姓“:”多伊“},”+
“{”姓“:”安“,”姓“:”史密斯“},”+
“{”姓“:”彼得“,”姓“:”琼斯“}];
const arr=JSON.parse(文本);
//使用aray.map()
const listNode=document.getElementById('demo')
函数makeListItem(员工){
返回“”+employee.firstName+” ”
}
功能列表员工(员工){
listNode.innerHTML=employees.map(makeListItem).join(“”)
}
列表员工(arr)
//使用array.forEach()
const listNode2=document.getElementById('demo2')
功能列表WithForEach(员工){
employees.forEach(功能(员工){
listNode2.innerHTML+=''+employee.firstName+' '
})
}
//使用+=会将内容附加到列表中,因此,如果调用函数两次,将得到一个重复项。
listWithForEach(arr)
listWithForEach(arr)
您好!为什么在这里使用JSON字符串?为什么不创建一个数组?你检查过你的控制台了吗?你的代码中有一个错误。有一个索引器是不需要的