首页 > 代码库 > 8月9号=》366页-375页

8月9号=》366页-375页

14.5  增加HTML元素

    JavaScript脚本可以为DOM动态增加节点,程序为DOM树增加节点时,页面会动态地增加HTML元素。当需要为页面增加HTML元素时,

    应按如下两个步骤操作。

      (1)创建或复制节点。

      (2)添加节点。

 

14.5.1  创建或复制节点

    创建节点通常借助于document对象的createElement方法来实现,语法如下。

      var a = document.createElement("div");

    调用document.createElement()方法时,传入的参数必须是一个合法的HTML标签。

    复制节点通常通过调用Node的cloneNode()方法即可复制一个已有的节点,该方法的格式如下。

      Node cloneNode(boolean deep):复制当前节点。当deep为true时,表示在复制当前节点的同时,复制该节点的全部

                      后代节点;当deep为false时,表示仅复制当前节点。

    代码示范:

      //获取ID为d的节点

      var ul = document.getElementById("d");

      //复制ul的第二个子节点(不复制当前节点的后代节点)

      var ajax = ul.firstChild.nextSibling.cloneNode(false);

      //将复制的节点添加到页面中

      ul.appendChild(ajax);

 

14.5.2  添加节点

    当一个节点创建成功后,一定要将该节点添加到DOM中才行。对于普通的几点,可采用Node对象的如下方法来添加节点。

      appendChild(Node newNode):将newNode添加成当前节点的最后一个子节点。

      insertBefore(Node newNode,Node refNode):在refNode节点之前插入newNode节点。

      replaeChild(Node newChild,Node oldChild):将oldChild节点替换成newChild节点。

 

14.5.3  为列表框、下拉菜单添加选项

    为列表框、下拉菜单添加子节点,也就是为列表框、下拉菜单添加选项。添加选项有两种方法:

      调用HTMLSelectElement的add()方法添加选项。

      直接为<select>的指定选项赋值。

    HTMLSelectElement包含如下方法用于添加新选项。

      add(HTMLOptionElement option,HTMlOptionElement before):在before选项之前添加option选项。如果想将option选项添加在

      最后,则将before指定为null即可;或者使用appendChild(option)添加亦可。

    创建选项除了可使用createElement方法之外,还可使用如下构造器。

      new Option(text,value,defaultSelected,selected)

    该构造器有4个参数,这4个参数说明如下:

      text:该选项的文本,即该选项所呈现的“内容”。

      value:选中该选项的值。

      defaultSelected:设置默认是否选中该选项。

      selected:设置该选项当前是否被选中。

 

14.5.4  动态添加表格内容

    表格元素、表格行则另有添加子元素的方法。实际上,它们可以再添加子元素的同时创建这些子节点。也就是说,添加表格子元素时,

    往往无须使用document的createElement()方法来创建节点。

    HTMLTableElement对象有如下方法。

      insertRow(index):在index处插入一行。返回新创建的HTMLTableRowElement。

      createCaption():为该表格创建标题。返回新创建的HTMLTableCaptionElement。如果该表格已有标题,则返回已有的标题对象。

      createTFoot():为该表格创建<tffot>元素。返回新创建的HTMLTableFootElement。

      createTHead():为该表格创建<thead>元素。返回新创建的HTMLTableHeadElement。如果该表格已有<thead>元素,则返回已有的<thead>元素。

    HTMLTableRowElement对象代表表格行,该对象包含如下方法用于插入单元格。

      insertCell(long index):在index处创建一个单元格,返回新创建的单元格。

 

14.6  删除HTML元素

    删除HTML元素也是通过删除节点来完成的。对于普通的HTML元素,可用通用方法来删除节点,而列表框、下来菜单、

    表格则有额外的方法来删除HTML元素。

 

14.6.1  删除节点

    删除节点通常借助于其父节点,NOde对象提供了如下方法来删除子节点。

      removeChild(oldNode):删除oldNode子节点。

 

14.6.2  删除列表框、下拉菜单的选项

    删除列表框、下拉菜单的选项有两种方法:

      利用HTMLSelectElement对象的remove()方法删除选项。

      直接将指定选项赋为null即可。

    对于HTMLSelectElement对象而言,它提供如了如下方法用于删除选项。

      remove(long index):删除指定索引处的选项。

 

14.6.3  删除表格的行或单元格

    删除表格的指定表格行使用HTMLTableElement对象的如下方法。

      deleteRow(long index):删除表格中index索引处的行。

    删除表格行的指定单元格使用HTMLRowElement对象的如下方法。

      deleteCell(long index):删除某行index索引处的单元格。