Проблема с вашим кодом:
document.querySelectorAll('.Appointments').innerHTML
Приведенный выше код не имеет особого смысла.querySelectorAll
возвращает коллекцию элементов HTML с именем класса «Встречи».
Коллекция не имеет метода innerHTML
, он есть только у элементов HTML.Какова была цель этого?
Было бы лучше получить элемент по идентификатору.
for(i in Data) {
// INSERT INTO HTML
}
Приведенный выше код является более старым способомцикл через массив.В настоящее время существует множество методов для массивов, которые гораздо лучше использовать.Я рекомендую вам проверить список .
Я бы порекомендовал использовать Array # map и Array # join
Array # map:
Очень полезно для преобразования массива данных в массив строки HTML.
Метод map () создает новый массив срезультаты вызова предоставленной функции для каждого элемента в вызывающем массиве.
Array # join:
Очень полезно для преобразования массива строки HTML водна целая строка.
Метод join () создает и возвращает новую строку путем объединения всех элементов в массиве (или объекте, подобном массиву), разделенных запятыми или указанной строкой-разделителем.,Если в массиве есть только один элемент, то этот элемент будет возвращен без использования разделителя.
Решение:
Используйте Array # map и Array # join.Это то, чем я часто пользуюсь и считаю наиболее читабельным.
В этом решении также используется деструктурирование (часть, в которой используется [date, label]
).
const data = [
["18/02/2019", "A"],
["19/03/2019", "B"],
["21/05/2019", "C"],
];
document.getElementById("appointments")
.innerHTML = data
//transform array of data to arrray of HTML string
.map(([date, label])=>(`<li>${date} : ${label}</li>`))
//transform array of HTML string to a single string of HTML
.join("");
<ul id="appointments"></ul>