Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JS for循环从json中定制动态嵌套ul列表_Javascript_Php_Jquery_Html_Json - Fatal编程技术网

Javascript 使用JS for循环从json中定制动态嵌套ul列表

Javascript 使用JS for循环从json中定制动态嵌套ul列表,javascript,php,jquery,html,json,Javascript,Php,Jquery,Html,Json,您好,我正在尝试使用javascript中的for循环从json呈现动态嵌套ul列表 在尝试了几个小时后,我终于能够让它工作了,我需要修复一些小细节,例如,我的javascript将所有对象呈现为html元素,如何仅呈现视图上所需的元素,例如: <ul class="some_class"> <li> <h3> level_0_name => Africa <input typ

您好,我正在尝试使用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>
如果不需要渲染标记,是否有一种简单的方法只渲染具有实际值(如“level_1_id”=>“12345”)的对象到列表中

这是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));
函数树(数据){
如果(数据的类型)=‘对象’{
var ul=$(“
    ”); 对于(数据中的变量i){ ul.append($('
  • ).text(i).append(tree(data[i])); } 返回ul; }否则{ var textNode=document.createTextNode('=>'+数据); 返回文本节点; } } $(document.body).append(树(数据));
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));