递归函数 - jQuery,获取链接

时间:2017-08-22 10:39:28

标签: jquery ajax recursion

我在列表的递归功能方面存在问题(文件夹和链接) 每个文件夹都有链接,也许每个文件夹都有子文件夹,

我的问题是我无法在相关文件夹中显示链接,我的代码只列出没有链接的文件夹 https://jsfiddle.net/9vxa6x8u/1/

这是我的代码:

function buildTree(jsonUrl) {

        function tree(treeData) {
            var mainUl = $('<ul>');
            $.each(treeData, function( index, folder ) {
                id = "folder"+ folder.id;
                var li =$('<li id="'+id+'" >');
                ul = $('<ul>');
                ul.append(li.text(folder.name).append(tree(folder.subFolders)));

                $.each(folder.links, function( index, link ) {
                    ul.append($('<li>').text(link.name));
                });
                mainUl.append(li);
            });
            return mainUl;
        }

        $.ajax({
           url: jsonUrl,
           dataType: "json",
           type: "get",
           success: function (data) {
                    $('#links-tree').append(tree(data));
           },
           error: function (e) {
               console.log(e)
           },
       });
}

1 个答案:

答案 0 :(得分:1)

检查一下,这是你想要实现的目标。请参阅此jsfiddle

刚刚对以下内容进行了更改

function tree(treeData) {
    if (treeData) {
      var mainUl = $('<ul>');
      $.each(treeData, function(index, folder) {
        id = "folder" + folder.id;
        var li = $('<li id="' + id + '" >');
        ul = $('<ul>');
        li.text(folder.name);
        ul.append(li.text(folder.name).append(tree(folder.subFolders)).append(tree(folder.links)));

        mainUl.append(li);
      });

      return mainUl;
    }
  }   
相关问题