我在列表的递归功能方面存在问题(文件夹和链接) 每个文件夹都有链接,也许每个文件夹都有子文件夹,
我的问题是我无法在相关文件夹中显示链接,我的代码只列出没有链接的文件夹 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)
},
});
}
答案 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;
}
}