Что не так с этим кодом (он должен немного изменить html-страницу)
Приведенный ниже код должен создать список с содержимым, которое вводит пользователь.
function d_list() {
let content = prompt()
let elem;
elem = '<ul>'
while (content) {
content = prompt()
elem.innerHTML =+ '<li>' + content + '</li>'
}
elem =+ '</ul>'
return elem;
}
let list = d_list()
let div = document.querySelector('.dyn_list')
div.append(list)
Приведенный ниже код должен создать список из заданного объекта ....................................... .....................................................................
let data = {
"Рыбы": {
"форель": {},
"лосось": {}
},
"Деревья": {
"Огромные": {
"секвойя": {},
"дуб": {}
},
"Цветковые": {
"яблоня": {},
"магнолия": {}
}
}
};
Есть код, который создает список списков ........................................ ...............
function createTree(container, data) {
container.innerHTML = '<ul>'
for (let things in data) {
things.innerHTML = '<ul>'
if (things.hasOwnProperty()) {
for (let t in things) {
t.innerHTML = t
}
} else {
things.innerHTML = things
}
things.innerHTML += '</ul>'
}
container.innerHTML += '</ul>'
}
let container = document.getElementById('container');
createTree(container, data);
Ответы (1 шт):
В обоих примерах перепутаны места где со строкой производятся действия как с элементом:
elem.innerHTML =+ '<li>' + content + '</li>': elem - это строка, поэтому тут недолжно было бытьinnerHTMLdiv.append(list)- так какd_listвозвращает строку, а не элемент, вместо.appendтут как раз можно было использовать.innerHTML.
В цикле for..in проход идет по ключам, ключами в данном случае могут быть только строки, поэтому и тут
for (let things in data) {
и тут
for (let t in things) {
things и t - являются строками, и как и в предыдущем примере в дальнейшем у них идет обращение к .innerHTML
Вместо этого, необходимо было менять .innerHTML единственного элемента container