<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>无限极目录树</title>
<script src="./jquery.js"></script>
<style>
* {margin: 0;padding: 0;}
.main{margin: 50px;}
li{list-style: none;}
ul li{padding-left: 20px;}
ul li ul{padding-left: 40px;}
ul li span{font-weight: bold;color: #FF0000;}
</style>
</head>
<body>
<div class="main">
</div>
<script>
$(function() {
var data = [
{
name: 'A-1',
child: [
{
name: 'A-1-1',
child: [
{
name: 'A-1-1-1'
},
{
name: 'A-1-1-2'
}
]
},
{
name: 'A-1-2',
child: [
{
name: 'A-1-2-1'
},
{
name: 'A-1-2-2'
}
]
}
]
},{
name: 'B-1',
child: [
{
name: 'B-1-1',
child: [
{
name: 'B-1-1-1'
},
{
name: 'B-1-1-2'
}
]
},
{
name: 'B-1-2',
child: [
{
name: 'B-1-2-1'
},
{
name: 'B-1-2-2'
}
]
}
]
}
]
$(".main").html(getMenu(data));
$(".main ul li").on('click',function(e){
//阻止事件冒泡
e.stopPropagation();
var target = e.target;
if($(target).has("ul").length){
if($(target).find("ul").is(":visible")){
$(target).find("ul").hide();
$(target).find("span").text("+");
}else{
$(target).find("ul").show();
$(target).find("span").text("-");
}
}
});
function getMenu(data){
var str = "<ul>";
for(var i=0;i<data.length;i++){
str+= "<li><span>-</span>"+data[i].name;
if(data[i].child&&data[i].child.length>0){
str+=getMenu(data[i].child);
}
str+="</li>";
}
str+="</ul>";
return str;
}
});
</script>
</body>
</html>