【发布时间】:2020-09-28 09:10:33
【问题描述】:
在下面的代码中,我想在初始 DOM 内容加载时迭代嵌套数据,但问题是列表未附加到其父元素。我将父 ID 作为参数传递,但我无法找出问题所在,我正在使用递归方法来迭代数据请指导我解决问题。
const list_wrapper = document.querySelector("#list_wrapper");
let data = [
{
id: 1,
title: "title 1",
liked: false,
comment: [{ id: 11, title: "title 1", liked: false, comment: [{ id: 111, title: "title 1",
liked: false, comment: [{ id: 1111, title: "title 1", liked: false }] }] }],
},
];
function createCommentListDOM(parEleID, comment) {
const li = document.createElement("li");
li.className = "list-group-item";
li.setAttribute("id", comment.id);
li.innerHTML = `${comment.title}`;
if (document.getElementById(parEleID) == null) {
list_wrapper.appendChild(li);
} else {
document.getElementById(parEleID).appendChild(li);
}
}
// Initial DOM render ----------------
document.addEventListener("DOMContentLoaded", () => {
iterateData(data);
});
function iterateData(arr) {
arr.map((v) => {
createCommentListDOM(v.id, v);
if (v.comment != undefined) {
return iterateData(v.comment);
}
});
}
【问题讨论】:
标签: javascript list recursion dom