我正在尝试将通过 ajax 获得的对象列表转换为类别菜单的嵌套 ul。看了这个网站后,我找到了一个 PHP 函数并将其转换为 javascript。
不幸的是,它不起作用:
function has_children(data, id) {
for(a=0; a<data.length; a++) {
if (data[a].ParentID == id) return true;
}
return false;
}
function renderCategoryTree(data, parent) {
result = "<ul>";
for(index=0; index<data.length; index++) {
if (data[index].ParentID == parent) {
result = result + "<li>" + data[index].Name;
if (has_children(data, data[index].ID))
result = result + renderCategoryTree(data, data[index].ID);
result = result + "</li>";
}
}
result = result + "</ul>";
return result;
}
var stuff= [ { ID: 1, ParentID: 0, Name: 'Development' },
{ ID: 2, ParentID: 0, Name: 'Databases' },
{ ID: 3, ParentID: 0, Name: 'Systems' },
{ ID: 4, ParentID: 1, Name: 'java' },
{ ID: 5, ParentID: 1, Name: 'c++' },
{ ID: 6, ParentID: 1, Name: 'python' },
{ ID: 7, ParentID: 1, Name: 'ruby' },
{ ID: 8, ParentID: 2, Name: 'mysql' },
{ ID: 9, ParentID: 2, Name: 'oracle' },
{ ID: 10, ParentID: 2, Name: 'sqlite' },
{ ID: 11, ParentID: 3, Name: 'linux' },
{ ID: 12, ParentID: 3, Name: 'windows' } ];
alert(renderCategoryTree(stuff, 0));
渲染在“ruby”处停止。我认为问题在于 javascript 输入的工作方式,但我不确定。任何人都可以帮忙吗?谢谢!