admin 管理员组

文章数量: 887017


2024年2月29日发(作者:手机数据库管理软件)

jQuery Treeview的增删操作

Treeview带给我们一个很好的树形结构的表现形式,不过要对Treeview进行细致的操作,官方文档中,没有找到(都是英文,懒得看了)。不过既然了解了Treeview的生成原理,自己动手做做也没什么困难。

1 回顾一下Treeview的原理

 html代码:

  • 天津

    • 南开
    • 河东

  • 北京

 js代码:注意和html的关系——mytree

 运行结果

2 DOM操作(资料来源/xmldom/)

首先熟悉一下dom对象的操作

2.1 createElement(name):创建节点

 说明:创建元素节点,此方法可返回一个 Element 对象。

 参数:name 字符串值,这个字符串可为此元素节点规定名称。

2.2 firstChild 首子节点属性:

 说明:可返回文档的首个子节点。

2.3 lastChild 末尾节点属性

 说明:可返回文档的最后一个子节点。

2.4 appendChild(node) 追加子节点:

 说明:该方法在指定元素节点的最后一个子节点之后添加节点。

 语法:Child(node)

 参数:node 必需。要追加的节点。

2.5 insertBefore(new_node,existing_node) 插入节点

 说明:方法在已有的子节点之前插入一个新的子节点。该方法返回这个新的子节点。

 语法:Before(new_node,existing_node)

 参数1:new_node 必需。要插入的节点。

 参数2:existing_node 必需。已有节点。在此节点之前插入新节点。

2.6 hasChildNodes()判断是否有子节点

 说明:如果当前元素节点拥有子节点,则 返回 true,否则返回 false。

 语法:ldNodes()

2.7 setAttribute((name,value) 方法创建或改变某个新属性。

 语法:ribute(name,value)参数 描述

 参数1:name 必需。规定要设置的属性名。

 参数2:value 必需。规定要设置的属性值。

2.8 示例1

 html代码:一行两列的表格;

a1 a2

 js代码:添加一格

 执行效果:

2.9 示例2

 html代码:一行两列的表格;

  • a1
  • a2

 js代码:添加一格

js函数,增加了参数,灵活针对不同标记。

 执行效果:

3 Treeview动态增加节点。

了解了上述的原理,其实增加节点就很容易了,基本原理和上述的示例2相同。只是这里需要解决两个问题:

 在哪里增加?

 增加以后是何种状态?

(至于,Treeview应该有专门的操作,因为有个,只是懒得琢磨了,由于要求不复杂,就自己随意写了几个方法)

3.1 如何感知在哪里添加

这里做了两件事情,一个是给

  • 增加一个感知鼠标操作的方法:

    • a1
    • a2

     取得对象js代码:

    var element; //全局变量

    function selnode(event){

    var evt = event || ;

    var element=ment || ;

    }

    3.2 如何添加

    了解Treeview的结构我们知道,子节点就是在当前

  • 的中间嵌套一套:

    • „„„„

     js实现代码

    function addtree(){

    if(element!=null)

    {

    var u=Element("ul"); //创建

      var i=Element("li"); //创建

    • ext="a3";

      Child(i);

      Child(u); //ul添加到上层选中的节点

      }

      }

      3.3 样式的控制

      上图可以看到,“a3”插入到了指定位置,但格式不对(线条未收口)。研究了一下jQuery的官方示例,发现,最后一个节点有个样式:

      class=”last"

      上述js增加语句:

      ribute("class","last");

      效果:

      3.4 其它

      这个是最基本的思路,其中没有考虑到得因素很多,只是基本实现了一下。实际情况可能有:

       空树,添加节点,此时已经有

        ,直接添加
      • 即可;

         一个节点下的第二个子节点:

        不能两个都是“last”,此时需要使用insertBefore()方法。


  • 本文标签: 节点 操作 方法 增加 元素