使用 JavaScript 将Fetch JSON 数据动态转换为 HTML 表

我会带着你远行 2023-10-01 16:33 65阅读 0赞
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Convert JSON Data to HTML Table</title>
  5. <style>
  6. th, td, p, input {
  7. font:14px Verdana;
  8. }
  9. table, th, td
  10. {
  11. border: solid 1px #DDD;
  12. border-collapse: collapse;
  13. padding: 2px 3px;
  14. text-align: center;
  15. }
  16. th {
  17. font-weight:bold;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <input type="button" onclick="CreateTableFromJSON()" value="Create Table From JSON" />
  23. <p id="showData"></p>
  24. </body>
  25. <script>
  26. function CreateTableFromJSON() {
  27. fetch("http://dummy.restapiexample.com/api/v1/employees").then(
  28. res => {
  29. res.json().then(
  30. data => {
  31. console.log(data.data);
  32. if (data.data.length > 0) {
  33. // EXTRACT VALUE FOR HTML HEADER.
  34. // ('Book ID', 'Book Name', 'Category' and 'Price')
  35. var col = [];
  36. for (var i = 0; i < data.data.length; i++) {
  37. for (var key in data.data[i]) {
  38. if (col.indexOf(key) === -1) {
  39. col.push(key);
  40. }
  41. }
  42. }
  43. // CREATE DYNAMIC TABLE.
  44. var table = document.createElement("table");
  45. // CREATE HTML TABLE HEADER ROW USING THE EXTRACTED HEADERS ABOVE.
  46. var tr = table.insertRow(-1); // TABLE ROW.
  47. for (var i = 0; i < col.length; i++) {
  48. var th = document.createElement("th"); // TABLE HEADER.
  49. th.innerHTML = col[i];
  50. tr.appendChild(th);
  51. }
  52. // ADD JSON DATA TO THE TABLE AS ROWS.
  53. for (var i = 0; i < data.data.length; i++) {
  54. tr = table.insertRow(-1);
  55. for (var j = 0; j < col.length; j++) {
  56. var tabCell = tr.insertCell(-1);
  57. tabCell.innerHTML = data.data[i][col[j]];
  58. }
  59. }
  60. // FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
  61. var divContainer = document.getElementById("showData");
  62. divContainer.innerHTML = "";
  63. divContainer.appendChild(table);
  64. }
  65. }
  66. )
  67. }
  68. )
  69. }
  70. </script>
  71. </html>

发表评论

表情:
评论列表 (有 0 条评论,65人围观)

还没有评论,来说两句吧...

相关阅读