当栏目存在多级时,当点击主栏目,只会隐藏它的一级子栏目,使用递归法,就可以隐藏主栏目所有的子栏目。
//当点击某一栏目时,关闭或显示它的所有子栏目,注意:关闭时是关闭它的子栏目及子栏目的子栏目。
$("span.typcn").click(function () {
var arr =[];//定义一个空数组存放所有子栏目id
var id =$(this).parents("tr").attr("id");//先得到顶级栏目id
all(id);//通过顶级栏目id,遍历所有子栏目id
if($(this).hasClass("typcn-arrow-down-thick")){
$("tr[pid="+id+"]").show();
$(this).removeClass("typcn-arrow-down-thick");
$(this).addClass("typcn-arrow-right-thick");
}else{
//遍历所有子栏目,然后隐藏
for(var j=0;j<arr.length;j++){
$("tr[id="+arr[j]+"]").hide();
$(this).removeClass("typcn-arrow-right-thick");
$(this).addClass("typcn-arrow-down-thick");
}
}
//递归找出所有子栏目
function all(id) {
$("tr[pid="+id+"]").each(function () {
arr.push($(this).attr("id"));
all($(this).attr("id"));
});
return arr;
}
});