2017-03-06 77 views
-2

我有下面的代碼應該採取每個數據結果的值,並將其發佈到HTML表。我不明白爲什麼下面的不工作:JavaScript創建表散列

<html> 
    <head> 
    <script type="text/javascript"> 
    data = { d : { 
     results: [ 
      { Title: 'Title1', Description: 'Description1', Status: 'Status1', Complete: 'Complete1' }, 
      { Title: 'Title2', Description: 'Description2', Status: 'Status2', Complete: 'Complete2' }, 
      { Title: 'Title3', Description: 'Description3', Status: 'Status3', Complete: 'Complete3' }, 
      { Title: 'Title4', Description: 'Description4', Status: 'Status4', Complete: 'Complete4' } ] } }; 

    data.d.results.push({Title: 'Title5', Description: 'Description5', Status: 'Status5', Complete: 'Complete5'}); 


    $(document).ready(function() { 
     for (var i = 0; i < data.d.results.length; i++) { 
      item = data.d.results[i]; 
      str = '<tr><td>' + item.Title + '</td><td> ' + item.Description + '</td><td>' + item.Status + '</td><td>' + item.Complete + '</td></tr>'; 
      $('#mytab tr').last().after(str); 
     } 
    }); 

    </script> 
    </head> 
    <body> 
    <table id="mytab"> 
    <tr> 
     <td>Task Title</td> <td>Description</td> <td>Task Status</td> <td>% Complete</td> 
    </tr> 
    </table> 
    </body> 
</html> 
+1

[我無法重現該問題(https://jsfiddle.net/jo0bewpq/),但我不得不進口的jQuery,你可能會丟失。 – Aaron

+0

請您分享瀏覽器控制檯日誌如果有? –

+0

謝謝。我已經修改了。仍然沒有工作,雖然 – Jaron787

回答

0

您的腳本運行之前,您的表在DOM中呈現。嘗試將您的腳本標記從<頭>移動到關閉< /正文>標記之前。

+0

將腳本標記從哪裏移到哪裏? – Jaron787

+0

對不起,我的答案中的標籤被刪除。修復它 –

1

在此延伸Patrick的想法。你可以確保JS執行DOM是通過使用加載之後:

$(document).ready(function() { 
    // execute your JavaScript code 
    // that depends on DOM 
}); 
+0

我已經這樣做了,但我一直得到:ReferenceError:$沒有在控制檯中定義 – Jaron787

+0

在您的評論部分中,每個人都問你包括jQuery。你的代碼依賴於它。仔細看看這個問題並接受答案。 http://stackoverflow.com/questions/7496789/how-to-include-jquery-in-another-javascript-file –