您好我试图在javascript中使用for循环从json渲染动态嵌套ul列表,
尝试了几个小时后我才能使它工作,我需要修复一些小细节,例如我的javascript将所有对象渲染为html元素,我如何只渲染所需的元素查看,例如:
<ul class="some_class">
<li>
<h3>
level_0_name => Africa
<input type="checkbox" name="level_0_id => VALUE HERE" id="">
</h3>
<ul class="some_class">
<li>
<h3>
level_1_name => Company San Fracisco
<input type="checkbox" name="level_1_id => VALUE HERE" id="">
</h3>
<ul class="some_class">
<li>
<h3>
level_2_name => Some title
<input type="checkbox" name="level_2_id => VALUE HERE" id="">
</h3>
<ul class="some_class">
<li>
<h3>
John Doe
<input type="checkbox" name="" id="" value="id VALUE">
</h3>
</li>
如果您查看我创建的http://jsfiddle.net/creativestudio/3avzp6o3/3/,您会注意到菜单从以下位置开始:
"level_0": [
并且不需要渲染标记,是否有一种简单的方法来只渲染具有实际值的对象,例如&#34; level_1_id&#34; =&GT; &#34; 12345&#34;进入名单?
这是JS函数:
function tree(data) {
if (typeof(data) == 'object') {
var ul = $('<ul>');
for (var i in data) {
ul.append($('<li>').text(i).append(tree(data[i])));
}
return ul;
} else {
var textNode = document.createTextNode(' => ' + data);
return textNode;
}
}
$(document.body).append(tree(data));