То, что вы хотите сделать, это создать элемент table
и добавить его к div
, затем сгенерировать строку с html
, а затем после окончания l oop вы хотите добавить строку к div
. Также запускайте Javascript после загрузки документа, используя $(document).ready(function(){});
Также есть случаи, когда dataitem._embedded.show.network
имеет значение NULL, поэтому вы хотите пропустить добавление данных для тех, к которым у вас нет доступа к свойству null (я также прикрепил string
, который указывает, для чего td
, вы можете удалить его, если хотите)
$(document).ready(function() {
var foo = null;
var data = "";
fetch("http://api.tvmaze.com/schedule/full")
.then(resp => resp.json())
.then(json_data => {
var table = document.createElement("table");
table.id = "mytable";
$("#div1").append(table);
for (let dataitem of json_data) {
data += "<tr>";
data += "<td>" + "id=" + dataitem.id + "</td>";
data += "<td>" + "name=" + dataitem.name + "</td>";
data += "<td>" + "image=" + dataitem.image + "</td></tr>";
data += "<tr><td>" + "summary=" + dataitem.summary + "</td></tr>";
data += "<tr><td>" + "airdate=" + dataitem.airdate + "</td></tr>";
data += "<tr><td>" + "airtime=" + dataitem.airtime + "</td></tr>";
data += "<tr><td>" + "airstamp=" + dataitem.airstamp + "</td></tr>";
data += "<tr><td>" + "runtime=" + dataitem.runtime + "</td></tr>";
data += "<tr><td>" + "season=" + dataitem.season + "</td></tr>";
data +=
"<tr><td>" +
"language=" +
dataitem._embedded.show.language +
"</td></tr>";
data +=
"<tr><td>" +
"genres=" +
dataitem._embedded.show.genres +
"</td></tr>";
if (dataitem._embedded.show.network !== null) {
data +=
"<tr><td>" +
"Country Name=" +
dataitem._embedded.show.network.country.name +
"</td></tr>";
data +=
"<tr><td>" +
"Code=" +
dataitem._embedded.show.network.country.code +
"</td></tr>";
data +=
"<tr><td>" +
"TimeZone=" +
dataitem._embedded.show.network.country.timezone +
"</td></tr>";
}
data +=
"<tr><td>" + dataitem._embedded.show.rating.average + "</td></tr>";
}
data += "</table>";
$("#mytable").append(data);
});
});
#mytable,
td {
border: 1px solid blue;
}
<!DOCTYPE html>
<html lang="en">
<head>
<!-- jquery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- Bootstrap 4 JS -->
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous"
></script>
<!-- CSS File Here -->
<link rel="stylesheet" href="./index.css" />
</head>
<body>
<div id="div1"></div>
<script src="./index.js"></script>
</body>
</html>