var video =[
{ id:1, pId:0, name:"Video_Data 1", open:true},
{ id:11, pId:1, name:"Video_Data 1-1", open:true},
{ id:111, pId:11, name:"Video_Data 1-1-1"},
{ id:112, pId:11, name:"Video_Data 1-1-2"},
{ id:12, pId:1, name:"Video_Data 1-2", open:true},
{ id:121, pId:12, name:"Video_Data 1-2-1"},
{ id:122, pId:12, name:"Video_Data 1-2-2"},
{ id:2, pId:0, name:"Video_Data 2", checked:true, open:true},
{ id:21, pId:2, name:"Video_Data 2-1"},
{ id:22, pId:2, name:"Video_Data 2-2", open:true},
{ id:221, pId:22, name:"Video_Data 2-2-1", checked:true},
{ id:222, pId:22, name:"Video_Data 2-2-2"},
{ id:23, pId:2, name:"Video_Data 2-3"}
];
根据父ID获取子ID,几级节点不定。

解决方案 »

  1.   


    function getSubId(node) {
        $.each(video, function(index, currentNode) {
            if (currentNode.pId == node.id) {
                result.push(currentNode);
                getSubId(currentNode);
            }
        });
    }
    结果 http://jsfiddle.net/nibuduomaomao/dJnQq/
      

  2.   

    根据id的话function getSubIdFromId(id) {
        getSubId({'id':id});
    }
    function getSubId(node) {
        $.each(video, function(index, currentNode) {
            if (currentNode.pId == node.id) {
                result.push(currentNode);
                getSubId(currentNode);
            }
        });
    }
    结果 http://jsfiddle.net/nibuduomaomao/dJnQq/1/
      

  3.   

    <script type="text/javascript">
    var video =[
                { id:1, pId:0, name:"Video_Data 1", open:true},
                { id:11, pId:1, name:"Video_Data 1-1", open:true},
                { id:111, pId:11, name:"Video_Data 1-1-1"},
                { id:112, pId:11, name:"Video_Data 1-1-2"},
                { id:12, pId:1, name:"Video_Data 1-2", open:true},
                { id:121, pId:12, name:"Video_Data 1-2-1"},
                { id:122, pId:12, name:"Video_Data 1-2-2"},
                { id:2, pId:0, name:"Video_Data 2", checked:true, open:true},
                { id:21, pId:2, name:"Video_Data 2-1"},
                { id:22, pId:2, name:"Video_Data 2-2", open:true},
                { id:221, pId:22, name:"Video_Data 2-2-1", checked:true},
                { id:222, pId:22, name:"Video_Data 2-2-2"},
                { id:23, pId:2, name:"Video_Data 2-3"}
            ];
    var test=[];
    function getNode(id){
      for(var i=0;i<video.length;i++){
    if(video[i]["pId"]==id){
    alert(video[i]["id"]);
    test.push(video[i]);
    getNode(video[i]["id"]);
    }
    }
    }
    getNode(1);
    for(var i=0;i<test.length;i++){
    document.write(test[i]["id"]+"<br/>");
    }
    </script>
    这样试试