gpt4 book ai didi

javascript - 在没有jquery的情况下将javascript中的JSON输出为列表

转载 作者:可可西里 更新时间:2023-11-01 14:54:41 25 4
gpt4 key购买 nike

我有一个 JSON 对象:

var txt = '{"employees":[' +
'{"firstName":"John","lastName":"Doe","time":"9:15am","email":"john_doe@gmail.com" },' +
'{"firstName":"Anna","lastName":"Smith","time":"9:15am","email":"anna@gmail.com" },' +
'{"firstName":"Peter","lastName":"Jones" ,"time":"9:15am","email":"peter@gmail.com"}]}';

我想在 div 语句之间打印为列表:

  • 李四
  • 上午 9:15
  • john_doe@gmail.com

  • 安娜·史密斯

  • 上午 9:15
  • anna@gmail.com

  • 彼得·琼斯

  • 上午 9:15
  • peter@gmail.com

我尝试填充的 HTML 如下所示:

    <div class="info">
<ul>
<li id="name"></li>
<li id="time"></li>
<li id="email"></li>
</ul>
</div>

我该如何实现?

<!DOCTYPE html>
<html>
<body>
<h2>Create Object from JSON String</h2>
<div id="output">

</div>
<script type="text/javascript">
var txt = '{"employees":[' +
'{"firstName":"John","lastName":"Doe","time":"9:15am","email":"john_doe@gmail.com" },' +
'{"firstName":"Anna","lastName":"Smith","time":"9:15am","email":"anna@gmail.com" },' +
'{"firstName":"Peter","lastName":"Jones" ,"time":"9:15am","email":"peter@gmail.com"}]}';

var employees=JSON.parse(txt).employees;
var container=document.getElementById("output");

for (i=0;i<employees.length;i++) { //Loops for the length of the list
var info=document.createElement('div');
info.className='info'; //Creates a new <div> element and adds the class info to it

var ul=document.createElement('div'); //Creates <ul> element
info.appendChild(ul); //Adds the <ul> to the newly created <div>

var name=document.createElement('li');
name.className='name'; //Should use class, not id, as ID must be unique
name.innerHTML=employees[i].firstName+' '+employees[i].lastName; //Adds name
ul.appendChild(name);

var time=document.createElement('li');
time.className='time';
time.innerHTML=employees[i].time;
ul.appendChild(time);

var email=document.createElement('li');
email.className='email';
email.innerHTML=employees[i].email;
ul.appendChild(email);

container.appendChild(info); //Adds the final generated HTML to the page

} //Will repeat for each item in list.

</script>
</body>
</html>

最佳答案

首先,把你的字符串变成一个对象:

var employees=JSON.parse(txt).employees;

然后,设置一个循环来构造 HTML

var container=//Link to the containing element using getElementById or similar

for (i=0;i<employees.length;i++) { //Loops for the length of the list
var info=document.createElement('div');
info.className='info'; //Creates a new <div> element and adds the class info to it

var ul=document.createElement('div'); //Creates <ul> element
info.appendChild(ul); //Adds the <ul> to the newly created <div>

var name1=document.createElement('li'); //Chrome seems not to like the variable "name" in this instance
name1.className='name'; //Should use class, not id, as ID must be unique
name1.innerHTML=employees[i].firstName+' '+employees[i].lastName; //Adds name
ul.appendChild(name1);

var time=document.createElement('li');
time.className='time';
time.innerHTML=employees[i].time;
ul.appendChild(time);

var email=document.createElement('li');
email.className='email';
email.innerHTML=employees[i].email;
ul.appendChild(email);

container.appendChild(info); //Displays the elements on the page

} //Will repeat for each item in list.

这也可以使用 container.innerHTML 来实现,但是构建这样的元素会混淆 DOM,因此通常只推荐用于文本节点,尽管再次理想情况下你会使用 document .createTextNode().

关于javascript - 在没有jquery的情况下将javascript中的JSON输出为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12265526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com