Javascript 循环对象和顺序子值
首先: 我在MYSQL中创建了一个论坛结构: 表:Javascript 循环对象和顺序子值,javascript,mysql,loops,assign,Javascript,Mysql,Loops,Assign,首先: 我在MYSQL中创建了一个论坛结构: 表:[boards]->id、母版、标题、说明 简单又好 这是数据库响应: [{"id":1,"parent_board":0,"title":"Lorem 1","description":"ec40db959345153a9912"}, {"id":2,"parent_board":0,"title":"Lorem 2","description":"bb698136a211ebb1dfedb"}, {"id":3,"parent_board":
[boards]
->id、母版、标题、说明
简单又好
这是数据库响应:
[{"id":1,"parent_board":0,"title":"Lorem 1","description":"ec40db959345153a9912"},
{"id":2,"parent_board":0,"title":"Lorem 2","description":"bb698136a211ebb1dfedb"},
{"id":3,"parent_board":1,"title":"Lorem 1-1","description":"6062bc28a9f781e06417d"}]
正如您所看到的,板id 3是板id 1的子板,因为其父板
值设置为1
我希望收到以下输出:
- 洛雷姆1
- 洛雷姆1-1
- 洛雷姆2
- 洛雷姆1
- 洛雷姆2
- 洛雷姆1-1
和
标签
这是我的密码:
var html = "</ul>";
for(var i = 0; i < boards.length; i++){
if(boards[i].parent_board == 0){
html += "<li>" + boards[i].title + "</li>";
}else{
html += "<ul>";
html += "<li>" + boards[i].title + "</li>";
html += "</ul>";
}
}
var html=“”;
对于(变量i=0;i”+板[i]。标题+””;
}否则{
html+=“”;
html+=“- ”+板[i]。标题+”
”;
html+=“
”;
}
}
我会在每个板的
上放置一个ID属性。然后,每当我遍历一个子板时,我只是将新项作为父项的子项附加到匹配id中,要做到这一点,您必须在遇到它们时创建每个元素并将其添加到文档中,而不是首先将它们存储在字符串中
var htmlElem = document.getElementById('htmlElemId');
htmlElem.innerHTML = "";
for(var i = 0; i < boards.length; i++){
if(boards[i].parent_board == 0){
htmlElem.innerHTML += "<li id='" + boards[i].id + "'>" + boards[i].title + "</li>";
}else{
var parent = document.getElementById(boards[i].parent_board);
if (parent){
parent.innerHTML += "<ul><li id='" + boards[i].id + "'>" + boards[i].title + "</li></ul>";
}
}
}
var htmlElem=document.getElementById('htmlElemId');
htmlElem.innerHTML=“”;
对于(变量i=0;i”+boards[i].title+“”;
}否则{
var parent=document.getElementById(boards[i].parent\u board);
如果(家长){
parent.innerHTML+=“- ”+boards[i]。title+”
”;
}
}
}
将“htmlemid”替换为容器元素的实际id,并确保其类型为
<>编辑:你可能还想考虑在你的ID中使用某种前缀,所以你不只是使用与其他地方“/P>”冲突的普通数字。
"<li id='SomePrefix-" + boards[i].id + "'>" + boards[i].title + "</li>"
var parent = document.getElementById("SomePrefix-" + boards[i].parent_board);
““+boards[i].title+” ”
var parent=document.getElementById(“SomePrefix-”+boards[i]。parent\u board);
EDIT2:下面是一个演示如何将平面数组转换为层次对象。它应该是相对简单的,以适应打印嵌套列表。这看起来很好巴尔马,谢谢你!你是我的好朋友。结果是:非常感谢!