ul li操作多级列表

要求是显示组织结构,会形成树形结构。

Department从微信提供的接口之后,获得信息是id,parentid,name等。

首先需要遍历,对department类增加一个属性,ArrayList<Department>childs.根据parentid,设置每个部门的直系子部门。

public static ArrayList<Department> generateDepart(){
       Token.getPeopleList();
       ArrayList<Department>departments=Token.departlist;
       for(int i=0;i<departments.size();i++){
           Department department=(Department)departments.get(i);
           ArrayList<Department>childdeparts=new ArrayList<Department>();
         //  ArrayList<People>alladdpeople=new ArrayList<People>();
           for(int j=0;j<departments.size();j++){
               if(i!=j){
               Department department1=(Department)departments.get(j);
               if(department.getId()==department1.getParentid()){
                   childdeparts.add(department1);
                 //  alladdpeople.addAll(department1.getPeoplelist());
               }
               }
           }
           department.setChildDeparts(childdeparts);
          // department.getPeoplelist().addAll(alladdpeople);
        
       }
       
       return departments;
   }

之后需要用递归的方法,对部门进行递归,依次显示每个部门,以及其子部门的信息,因为在jsp页面上显示为多级列表,所以使用如下方法。

public   ArrayList<String> printTree(Department department,int blk){
      
       for(int i=0;i<blk;i++)   System.out.print("               ");
      // System.out.println("<li>"+department.getName()+"</li>");
        showlist.add("<li><a href='#'>"+department.getName()+"</a></li>");
       if(department.getChildDeparts().size()!=0){
         //  System.out.println("<ul>");
           showlist.add("<ul>");
           }
       for(int i=0;i<department.getChildDeparts().size();i++){
           
           printTree(department.getChildDeparts().get(i), blk+1);
          
       }
       if(department.getChildDeparts().size()!=0){
           showlist.add("</ul>");
     //  System.out.println("</ul>");
       }
       return showlist;
   }

在页面上显示的效果为:

需要完成的动作是:当点击一个父级的<li>,其子<li>标签会显示,获得消失。

这里用到了jquery动画中slideToggle。

具体实现:

$(document).ready(function()
          {
          $("li").click(function(){
              var node=$(this);
              
             // alert(node.text());
              var list=node.nextAll("ul");
            //  alert(list.text());
              list.slideToggle();
                   });
                      });

 

转载于:https://www.cnblogs.com/bounceFront/p/5570389.html

### HTML中`ul`和`li`标签的用法 在HTML文档结构化表示数据时,`<ul>` 和 `<li>` 标签用于构建无序列表。`<ul>` 表示无序列表,而 `<li>` 定义列表中的项目[^1]。 #### 创建基本无序列表 为了创建一个简单的无序列表,需遵循如下语法: ```html <ul> <li>列表项 1</li> <li>列表项 2</li> <li>列表项 3</li> </ul> ``` 此代码片段展示了三个并列关系的条目组成的无序列表。值得注意的是,在 `<ul>` 标签内部仅能放置 `<li>` 标签;直接向其中添加除 `<li>` 外的其他标签或纯文本是不符合标准的做法。 #### 嵌套更多内容于列表项内 尽管规定了 `<ul>` 下只能有 `<li>` 子元素,但每一个 `<li>` 实际上是一个容器,能够包容几乎所有的HTML元素,比如段落、链接甚至是另一个新的无序列表,从而形成多级嵌套效果[^2]。 下面的例子说明了一个更复杂的场景——带有多层子项目的菜单式导航栏: ```html <ul> <li><a href="#">首页</a></li> <li>产品展示 <ul> <li><a href="#">电子产品</a></li> <li><a href="#">家居用品</a></li> </ul> </li> <li><a href="#">关于我们</a></li> </ul> ``` 这里不仅实现了超链接的功能,还通过再次引入一对 `<ul>` 和多个 `<li>` 来实现次级分类的效果[^3]。 #### 使用CSS自定义外观 默认情况下,浏览器会给无序列表自动添加样式(如小圆点),不过通常建议开发者借助外部 CSS 文件来自由调整这些视觉特性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值