使用 php 内联回显 json 数组我希望 js/jquery 根据这些数据填充表。
HTML 表格
<table>
<thead>
<tr>
<th>Time</th>
<th data-day='2013-03-15'>15-3</th>
<th data-day='2013-03-16'>16-3</th>
<th data-day='2013-03-17'>17-3</th>
</tr>
</thead>
<tbody>
<tr data-time='09'>
<td>9am</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<script>
var arr=[
{"date":"2013-03-15","id":"4","time_booked":"09:00:00"},
{"date":"2013-03-15","id":"1","time_booked":"09:10:00"},
{"date":"2013-03-17","id":"5","time_booked":"09:30:00"}
];
$.each(arr,function(){
console.log('id:'+this.id+'inside:'+this.date+'|'+this.time_booked);
});
</script>
我想循环 thro arr 并根据它的 date 和 time_booked 在 td 中写入 id。
例如,第一行将使用 date-day='2013-03-15' 和 data-time='09' 转到 td 那么我该如何使用 javascript 来做到这一点?
我想我应该在 tbody 的每个 td 中包含数据日、数据时间吗?或者有更好的方法吗?
目前的做法:
在每个 tr 中包含 data-day 所以 tbody 的 html 是
<tr data-time='09'>
<td data-day='2013-03-15'></td>
<td data-day='2013-03-16'></td>
etc..
</tr>
然后用js
$.each(arr,function(){
var rday=this.date;
var rtime=this.time_booked;
var sel='tr[data-hr="'+rtime.substr(0,2)+'"]';
var dom=$(sel).find('td[data-day="'+rday+'"]').first();
if(dom.length)dom.append(this.id);
});
但我有一种感觉它很愚蠢!必须有一种使用 x,y (表头,行头)映射表的方法,还是没有?