从 JSON 数据创建 HTML 项目符号列表时出现问题
Problems creating an HTML bulleted list from JSON data
我有一些JSON,我想把它变成项目符号列表。在每个级别都有一个名称字段和一个子字段(除了最低级别)。我尝试使用递归来做到这一点,但我遇到了一个问题。除最后一个级别外,仅显示第一个子级别。我有一种感觉,我的一些递归调用可能无法正确返回。这是我到目前为止的代码:
function load_menu(){
json_text=ajax_get("example.json");
json_tree=JSON.parse(json_text);
write_menu(json_tree.children,document.getElementById("level1"));
}
function write_menu(json,element){
for(i=0;i<json.length;i++){
var listitem=document.createElement("li");
element.appendChild(listitem);
var listitemtext=document.createElement("span");
listitem.appendChild(listitemtext);
listitemtext.innerText=json[i].name;
if(json[i].children){
listitemtext.setAttribute("onclick","toggle(this);");
var sublist=document.createElement("ul");
listitem.appendChild(sublist);
write_menu(json[i].children,sublist);
};
};
}
我最终得到了一棵看起来像这样的树:
Level 1,1
Level 2,1
Level 3,1
Level 3,2
它应该看起来像这样:
Level 1,1
Level 2,1
Level 3,1
Level 3,2
Level 2,2
Level 1,2
Level 2,3
我已经检查了我的 JSON,它似乎没问题,所以我想某处的递归一定有问题。谁能在这里帮我?
如果你
写for (i...
如果不存在,JS解释器将创建一个新变量i
,或者如果存在,则重用现有的变量。这就是问题所在,因为在每个递归级别都需要新的循环变量。
因此,解决方案是通过编写for (var i...
来强制在每个级别上创建一个变量。
相关文章:
- jQuery,引导程序下拉列表问题
- JQuery刷新列表效果-淡入淡出问题
- jQuery拖动到相对位置的可排序列表中时出现可拖动辅助对象位置问题
- jQuery切换列表菜单问题
- 当前用户顶部列表的曲目快照出现间歇性问题
- 为了在列表中搜索,角度过滤器有问题
- JQuery Mobile自定义下拉列表问题
- 引导下拉列表问题.(下拉列表和下拉列表保持下拉列表)
- 下拉列表问题在选择第一个后丢失值“0”
- 移动触摸上的引导下拉列表问题
- 填充数据列表问题中的数据
- 自动完成搜索列表问题
- 掉落列表问题
- 聚合物下拉列表问题
- jQuery克隆元素,然后用连接的结果填充隐藏字段,以避免空列表问题
- 春季自动填充列表问题
- 美味的JSON列表问题
- Powershell web自动化-下拉列表问题
- 淘汰赛.js iPhone上的问题 - 下拉列表问题
- 下拉列表问题