使用JS for循环从json自定义动态嵌套ul列表

时间:2015-03-15 05:36:55

标签: javascript php jquery html json

您好我试图在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));

0 个答案:

没有答案