javascript - 以父子层次结构显示 JSON 数据

标签 javascript jquery json

我们希望以父子层次结构显示 JSON 数据

var JsonArr = [{
                   "comment":"Comment 1", 
                   "commentID":1, 
                   "parentID":0,
                   "children":[{
                              "comment":"Comment 1-2", 
                              "commentID":2, 
                              "parentID":1, 
                              "children":[{
                                         "comment":"Comment 1-2-2",
                                         "commentID":1,
                                         "parentID":2 
                                         }]
                            }]
                },
                {
                "comment":"Comment 2", 
                "commentID":4, 
                "parentID":0
               }]

电流输出:
enter image description here

预期输出:
enter image description here

工作中的 JSFiddle : https://jsfiddle.net/6dcdbks4/

任何立即帮助都将非常感激。谢谢。

最佳答案

检查这个fiddle .

不完全是一个结构,但我们可以使用css来模仿它并传递级别信息

function showComments(comments,level){//Extra parameter for level information
 for(var i = 0; i < comments.length; i++) {
     commentsContainer = loadComment(comments[i], commentsContainer,level)//render comment along with level information
    if (comments[i]['children'] && comments[i]['children'].length) {
      showComments(comments[i]['children'],level+1)//next level for children
    }
  }
}

function loadComment(commentObj, commentsContainer,level){//level of node
    var profileFullName = "Full Name";
    //add some padding multiplied with level for each comment element
    var commentHTML = '<div class="commentbox" style="padding-left:'+(level*100)+'px;"><div class="commentphoto"><a href="#123"><img src="https://graph.facebook.com/100000816365798/picture?type=square"></a></div><div class="commentcontent"><a href="#123"><strong>' + profileFullName + '</strong></a> &nbsp;<small>Just now</small><br>' + commentObj.comment + '<br><a name="replyComment" commentid="' + commentObj.commentID + '">Reply</a><span id="votescore-' + commentObj.commentID + '" class="votescore"></span></div></div>';
    commentsContainer.append(commentHTML);
    return commentsContainer;
}

showComments(JsonArr,0);//call showComment with initial level 0

关于javascript - 以父子层次结构显示 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36026781/

相关文章:

javascript - 具有自适应时间间隔的 AJAX 刷新

javascript - 根据大小将数字动态舍入到小数点后 n 位

php - 在 Qunit 测试中使用 Zend 局部 View 助手

javascript - 使用 <svg> 将样式导出为 .svg

javascript - 将元素添加到 JSON 数组 JavaScript

javascript - 使用backbonejs渲染谷歌地图

javascript - 尽管在脚本中定义了,但为什么在检查时会跳过函数并且未定义 onclick?

javascript - 如何从对象数组中提取 jqCharts 的数据?

java - Jackson - 循环依赖导致反序列化失败

javascript - AJAX 请求在 FIREFOX 上被拒绝,但在 IE 上则不然