2013-09-16 35 views
1

我有JSON數據JSON數據表的javaScript不使用jQuery

var schedule = [ 
{ date: "Monday, 9:00am", team1: "Chasing", team1Score: "13", team2: "Amsterdam Money Gang", team2Score: "9"}, 
{ date: "Monday, 9:00am", team1: "Boomsquad", team1Score: "15", team2: "Beast Amsterdam", team2Score: "11"}, 
]; 

現在我需要它,只有使用JavaScript(所以加下表沒有jQuery的,但我們可以使用微庫)

<tr> 
    <td data-bind="date"></td> 
    <td data-bind="team1"></td> 
    <td data-bind="team1score"></td> 
    <td data-bind="team2"></td> 
    <td data-bind="team2score"></td> 
</tr> 

我用的是通過數組下循環,只是現在我不知道如何使一個新的TR上的每個陣列行

var len = schedule.length; 

for (var i=0; i < len; i++) { 

} 

所以我試圖讓下面的輸出

   <tr> 
        <td>Monday, 9:00am</td> 
        <td class="winner">Chasing</td> 
        <td>13 - 9</td> 
        <td>Amsterdam Money Gang</td> 
       </tr> 

       <tr> 
        <td>Monday, 9:00am</td> 
        <td class="winner">Boomsquad</td> 
        <td>15 - 11</td> 
        <td>Beast Amsterdam</td> 
       </tr> 
+1

你不知道'使用document.createElement()'?玩的開心。你拼寫錯誤的長度。 – epascarello

+0

爲什麼不使用類似knockout.js的東西? – Armand

回答

1

Example here

你可以做你想做的是這樣的:

var len = schedule.length; 
var table = document.getElementById('table1'); 

for (var i=0; i < len; i++) { 
    var tr = document.createElement('tr'); 
    var s = schedule[i]; 

    var td = document.createElement('td'); 
    td.innerHTML = s.date; 
    tr.appendChild(td); 

    td = document.createElement('td'); 
    td.innerHTML = s.team1; 
    tr.appendChild(td); 

    td = document.createElement('td'); 
    td.innerHTML = s.team1Score; 
    tr.appendChild(td); 

    td = document.createElement('td'); 
    td.innerHTML = s.team2; 
    tr.appendChild(td); 

    td = document.createElement('td'); 
    td.innerHTML = s.team2Score; 
    tr.appendChild(td); 

    table.appendChild(tr); 
} 
0

在每一個新的數組,你應該創建一個新的TR元素 請看看下面的example

1

試試這個,你可能要根據您的HTML佈局調整它。

var schedule = [ 
{ date: "Monday, 9:00am", team1: "Chasing", team1Score: "13", team2: "Amsterdam Money  Gang", team2Score: "9"}, 
{ date: "Monday, 9:00am", team1: "Boomsquad", team1Score: "15", team2: "Beast Amsterdam", team2Score: "11"}, 
]; 

document.write('<table>'); 
for(var i = 0; i < schedule.length; i++) 
{ 
    var obj = schedule[i]; 

    document.write('<tr><td>' + obj.date + '</td><td class="winner">' + obj.team1 + '</td><td>' + obj.team1Score + ' - ' + obj.team2Score + '</td><td>' + obj.team2 + '</td></tr>'); 
} 
document.write('</table>'); 
+1

使用document.write將元素添加到DOM不是明智之舉。 向DOM添加新元素應該只與createElement – Scription

+0

我同意你的看法,createElement是一個更好的選擇。我只是想給一個工作樣本,可以很容易地修改成createElement。 – Vinod