http://bbs.csdn.net/topics/390382802
看详情见这个帖子。

解决方案 »

  1.   

    看下下面这样OK不<script type="text/javascript">
    window.onload = function(){
    var data = [
    {
    "config_id" : "110",
    "task_name" : "任务1",
    "parent_id" : "0"
    },{
    "config_id" : "111",
    "task_name" : "任务2",
    "parent_id" : "0"
    }, {
    "config_id" : "112",
    "task_name" : "任务3",
    "parent_id" : "0"
    }, {
    "config_id" : "113",
    "task_name" : "任务4",
    "parent_id" : "0"
    }, {
    "config_id" : "114",
    "task_name" : "任务5",
    "parent_id" : "0"
    }, {
    "config_id" : "121",
    "task_name" : "任务6",
    "parent_id" : "111"
    }, {
    "config_id" : "122",
    "task_name" : "任务7",
    "parent_id" : "110"
    }, {
    "config_id" : "123",
    "task_name" : "任务8",
    "parent_id" : "112"
    }, {
    "config_id" : "124",
    "task_name" : "任务9",
    "parent_id" : "113"
    }, {
    "config_id" : "125",
    "task_name" : "任务10",
    "parent_id" : "114"
    }, {
    "config_id" : "126",
    "task_name" : "任务11",
    "parent_id" : "114"
    }, {
    "config_id" : "127",
    "task_name" : "任务12",
    "parent_id" : "114"
    }
    ];
    var html = ['<table border="1">' , '<tr><th>1</th><th>所有任务</th></tr>'] , k = 1;
    function fn(_pid , _data , _deep){
    for(var i = 0 ; i < _data.length ; ++i){
    if(_data[i].parent_id == _pid){
    k++;
    html.push('<tr><th>' + k + '</th><th>' + getSpace(_deep) + _data[i].task_name + '</th></tr>');
    //console.log(getSpace(_deep)+_data[i].task_name);
    fn(_data[i].config_id , _data , _deep+1);
    }
    }
    }
    function getSpace(i){
    var _space = '';
    for(var j = 0 ; j < i ; ++j){
    _space+='&nbsp;&nbsp;&nbsp;&nbsp;';
    }
    return _space;
    }
    fn(0 , data , 0);
    html.push('</table>');
    document.body.innerHTML = html.join('');
    }
    </script>
    <BODY> 
    </BODY>
      

  2.   

    改个地方

    html.push('<tr><th>' + k + '</th><th>' + getSpace(_deep) + _data[i].task_name + '</th></tr>');
    换成
    html.push('<tr><td>' + k + '</td><td>' + getSpace(_deep) + _data[i].task_name + '</td></tr>');