×
XML DOM 教程DOM 简介DOM 节点DOM 节点树DOM 解析DOM 加载函数DOM 方法DOM 访问DOM 节点信息DOM 节点列表DOM 遍历DOM 浏览器DOM 导航DOM 获取节点DOM 改变节点DOM 删除节点DOM 替换节点DOM 创建节点DOM 添加节点DOM 克隆节点DOM XMLHttpRequestDOM 节点类型DOM NodeDOM NodeListDOM NamedNodeMapDOM DocumentDOM DocumentImplDOM DocumentTypeDOM ProcessingInstDOM ElementDOM AttributeDOM TextDOM CDATADOM CommentDOM XMLHttpRequestDOM ParseError ObjDOM 解析器错误DOM 总结DOM 实例DOM 验证

XML DOM – 删除节点


removeChild() 方法删除指定节点。

removeAttribute() 方法删除指定属性。


实例

尝试一下 - 实例

下面的实例使用 XML 文件 books.xml
函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。

删除元素节点
本例使用 removeChild() 来删除第一个 <book> 元素。

删除当前元素节点
本例使用 parentNode 和 removeChild() 来删除当前的 <book> 元素。

删除文本节点
本例使用 removeChild() 来删除第一个 <title> 元素的文本节点。

清空文本节点的文本
本例使用 nodeValue() 属性来清空第一个 <title> 元素的文本节点。

根据名称删除属性
本例使用 removeAttribute() 从第一个 <book> 元素中删除 "category" 属性。

根据对象删除属性
本例使用 removeAttributeNode() 从所有 <book> 元素中删除所有属性。


删除元素节点

removeChild() 方法删除指定的节点。

当一个节点被删除时,其所有子节点也会被删除。

下面的代码片段将从载入的 xml 中删除第一个 <book> 元素:

实例

xmlDoc=loadXMLDoc("books.xml");

y=xmlDoc.getElementsByTagName("book")[0];

xmlDoc.documentElement.removeChild(y);

尝试一下 »

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 把变量 y 设置为要删除的元素节点
  3. 通过使用 removeChild() 方法从父节点删除元素节点

删除自身 - 删除当前的节点

removeChild() 方法是唯一可以删除指定节点的方法。

当您已导航到需要删除的节点时,就可以通过使用 parentNode 属性和 removeChild() 方法来删除此节点:

实例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book")[0];

x.parentNode.removeChild(x);

尝试一下 »

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 把变量 y 设置为要删除的元素节点
  3. 通过使用 parentNode 属性和 removeChild() 方法来删除此元素节点

删除文本节点

removeChild() 方法可用于删除文本节点:

实例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0];

y=x.childNodes[0];
x.removeChild(y);

尝试一下 »

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 把变量 x 设置为第一个 title 元素节点
  3. 把变量 y 设置为要删除的文本节点
  4. 通过使用 removeChild() 方法从父节点删除元素节点

不太常用 removeChild() 从节点删除文本。可以使用 nodeValue 属性代替它。请看下一段。


清空文本节点

nodeValue 属性可用于改变或清空文本节点的值:

实例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="";

尝试一下 »

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 把变量 x 设置为第一个 title 元素的文本节点
  3. 使用 nodeValue 属性来清空文本节点的文本

遍历并更改所有 <title> 元素的文本节点: 尝试一下


根据名称删除属性节点

removeAttribute(name) 方法用于根据名称删除属性节点。

实例:removeAttribute('category')

下面的代码片段删除第一个 <book> 元素中的 "category" 属性:

实例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");

尝试一下 »

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 使用 getElementsByTagName() 来获取 book 节点
  3. 从第一个 book 元素节点中删除 "category" 属性

遍历并删除所有 <book> 元素的 "category" 属性: 尝试一下


根据对象删除属性节点

removeAttributeNode(node) 方法通过使用 node 对象作为参数,来删除属性节点。

实例: removeAttributeNode(x)

下面的代码片段删除所有 <book> 元素的所有属性:

实例

xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book"); for (i=0;i<x.length;i++) { while (x[i].attributes.length>0) { attnode=x[i].attributes[0]; old_att=x[i].removeAttributeNode(attnode); } }

尝试一下 »

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 使用 getElementsByTagName() 来获取所有 book 节点
  3. 检查每个 book 元素是否拥有属性
  4. 如果在某个 book 元素中存在属性,则删除该属性

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)