【发布时间】:2015-04-14 13:12:31
【问题描述】:
我正在处理从 API 中提取信息并希望获取该数据并将其插入到 for-loop 中不同类的某些元素中。现在我正在通过 switch-statement 包裹在 .each() 方法中来执行此操作。似乎这种方式对一个人来说是重复的,并且可能比任何东西都更重性能。有没有一种更简洁有效的方式来实现这一点?
var tracks = [{number: "01", title: "Track 1", duration: "5:35"}, {number: "02", title: "Track 2", duration: "5:15"}, {number: "03", title: "Track 3", duration: "5:07"}, {number: "04", title: "Track 4", duration: "0:16"}, {number: "05", title: "Track 5", duration: "5:35"}];
for (var i = 0, trackNumber, trackTitle, trackDuration; i < tracks.length; i++) {
trackNumber = tracks[i]["number"];
trackTitle = tracks[i]["title"];
trackDuration = tracks[i]["duration"];
$("span").each(function() {
switch($(this).attr("class")) {
case "number":
$(".number").eq(i).text(trackNumber);
case "title":
$(".title").eq(i).text(trackTitle);
case "duration":
$(".duration").eq(i).text(trackDuration);
default:
//
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<thead>
<tr>
<td><b>No</b></td>
<td><b>Title</b></td>
<td><b>Duration</b></td>
</tr>
</thead>
<tr>
<td><span class="number"></span></td>
<td><span class="title"></span></td>
<td><span class="duration"></span></td>
</tr>
<tr>
<td><span class="number"></span></td>
<td><span class="title"></span></td>
<td><span class="duration"></span></td>
</tr>
<tr>
<td><span class="number"></span></td>
<td><span class="title"></span></td>
<td><span class="duration"></span></td>
</tr>
<tr>
<td><span class="number"></span></td>
<td><span class="title"></span></td>
<td><span class="duration"></span></td>
</tr>
<tr>
<td><span class="number"></span></td>
<td><span class="title"></span></td>
<td><span class="duration"></span></td>
</tr>
</table>
【问题讨论】:
-
为什么不动态生成元素呢?
标签: javascript jquery html for-loop switch-statement