吐出数据,重复变量的逻辑问题

时间:2013-08-22 15:10:57

标签: javascript jquery logic

我正在尝试解析一个垂直拥有客户并水平设置时间戳的表。到目前为止我所做的只是重复了每个循环的先前客户的时间戳。这是我的代码:

json = JSON.parse(xmlHTTP.responseText);
    message = "<table><tr id='head_table'><td>Name:</td><td>Rnd 1:</td><td>Rnd 2:</td><td>Rnd 3:</td><td>Rnd 4:</td><td>Rnd 5:</td><td>Rnd 6:</td><td>Options:</td></tr>";
    for(var i=0; i<json.collection.length; i++)
    {
        message = message + "<tr><td>" + json.collection[i].customer.name + "</td>";

        for(var j=0; j<json.collection[i].events.length; j++)
        {
            eventmsg = eventmsg + "<td>" + json.collection[i].events[j].time_stamp + "</td>";
        }
        message = message + eventmsg + "</tr>";
    }
    message = message + "</table>";

JSON看起来像这样:

- collection: [
   - {
      - customer: {
          id: "1",
          name: "Mr Jones",
          customer_id: "1"
        }
      -events: [
         -{
           event_id: "1",
           time_stamp: "1377083342"
          }
         -{
           event_id: "2",
           time_stamp: "1377083342"
          }

1 个答案:

答案 0 :(得分:0)

我在这里看到没有错误试试这个..如果它不能通过json的一部分。

var json = JSON.parse(xmlHTTP.responseText),
message = "<table><tr id='head_table'><td>Name:</td><td>Rnd 1:</td><td>Rnd 2:</td><td>Rnd 3:</td><td>Rnd 4:</td><td>Rnd 5:</td><td>Rnd 6:</td><td>Options:</td></tr>";

for(var i=0; i<json.collection.length; i++){
 message+="<tr><td>" + json.collection[i].customer.name + "</td>";
 for(var j=0; j<json.collection[i].events.length; j++){
  message+="<td>" + json.collection[i].events[j].time_stamp + "</td>";
 }
 message+="</tr>";
}
message+="</table>";

你不需要写msg=msg+evntmsg它会让人感到困惑并导致错误 你也不需要另外一个var用于事件,只需附加

即可

所以msg+=newstring

想想你只是追加一个字符串。

提示:缓存你的json。

var collection = JSON.parse(xmlHTTP.responseText).collection

for(var i=0 , co ; co = collection[i] ; ++i){
 message+="<tr><td>" + co.customer.name + "</td>";
 for(var j=0 , ev ; ev = co.events[j] ; ++j){
  message+="<td>" + ev.time_stamp + "</td>";
 }
 message+="</tr>";
}
message+="</table>";