【发布时间】:2012-08-29 05:36:30
【问题描述】:
我有一个 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>
【问题讨论】:
-
你在使用 jQuery 吗? (使事情变得更容易,但不是绝对必要的。)
-
@Brad 我宁愿不使用 jquery
-
如果你计划有多个“信息”分组,你不应该使用 id's name/time/email。
-
您应该使用
class而不是id来识别姓名、时间和电子邮件,因为您最终会得到它们的多个实例。
标签: javascript html json