<script>//数据结构
var json = [
{ id: 1, pid: 0, text: '1(XX公司)' },
{ id: 2, pid: 4, text: '2.1.1(开发部a-1组)' },
{ id: 3, pid: 0, text: '2(开发部)' },
{ id: 4, pid: 3, text: '2.1(开发部a)' },
{ id: 5, pid: 0, text: '3(人事部)' },
{ id: 6, pid: 5, text: '3.1(人事部A)' },
{ id: 7, pid: 0, text: '4(设计部)' },
{ id: 8, pid: 7, text: '4.1(设计部A)' },
{ id: 9, pid: 4, text: '2.1.2(开发部a-2组)' },
{ id: 11, pid: 2, text: '2.1.1.1(开发部a-1组>1小组)' },
{ id: 12, pid: 2, text: '2.1.1.2(开发部a-1组>2小组)' },
{ id: 13, pid: 5, text: '3.2(人事部A)' },
{ id: 19, pid: 5, text: '3.3(人事部B)' }
];
function departmentRecursion(mid, obj) {
var a = '<dl>';
//console.log(obj.length);
//for (var i = 0, j=0;i<=obj.length;)
//{
// console.log(i,j);
// if (j.pid == mid)
// a += '<dt>' + j.text + '</dt><dd>' + departmentRecursion(j.id, obj) + '</dd>';
// a += '<dt>' + j.text + '</dt><dd>' + departmentRecursion(j.id, obj) + '</dd>'; j = obj[i++];
// }
for(var i=0;i<obj.length;i++)
{
//console.log(obj[i].pid)
if(obj[i].pid==mid)
a += '<dt>' + obj[i].text + '</dt><dd>' + departmentRecursion(obj[i].id, obj) + '</dd>';
}
a += '</dl>';
return a;
}
document.write(departmentRecursion(0, json));
</script>
var json = [
{ id: 1, pid: 0, text: '1(XX公司)' },
{ id: 2, pid: 4, text: '2.1.1(开发部a-1组)' },
{ id: 3, pid: 0, text: '2(开发部)' },
{ id: 4, pid: 3, text: '2.1(开发部a)' },
{ id: 5, pid: 0, text: '3(人事部)' },
{ id: 6, pid: 5, text: '3.1(人事部A)' },
{ id: 7, pid: 0, text: '4(设计部)' },
{ id: 8, pid: 7, text: '4.1(设计部A)' },
{ id: 9, pid: 4, text: '2.1.2(开发部a-2组)' },
{ id: 11, pid: 2, text: '2.1.1.1(开发部a-1组>1小组)' },
{ id: 12, pid: 2, text: '2.1.1.2(开发部a-1组>2小组)' },
{ id: 13, pid: 5, text: '3.2(人事部A)' },
{ id: 19, pid: 5, text: '3.3(人事部B)' }
];
function departmentRecursion(mid, obj) {
var a = '<dl>';
//console.log(obj.length);
//for (var i = 0, j=0;i<=obj.length;)
//{
// console.log(i,j);
// if (j.pid == mid)
// a += '<dt>' + j.text + '</dt><dd>' + departmentRecursion(j.id, obj) + '</dd>';
// a += '<dt>' + j.text + '</dt><dd>' + departmentRecursion(j.id, obj) + '</dd>'; j = obj[i++];
// }
for(var i=0;i<obj.length;i++)
{
//console.log(obj[i].pid)
if(obj[i].pid==mid)
a += '<dt>' + obj[i].text + '</dt><dd>' + departmentRecursion(obj[i].id, obj) + '</dd>';
}
a += '</dl>';
return a;
}
document.write(departmentRecursion(0, json));
</script>