DOM 删除节点

创建于 2024-12-03 / 17
字体: [默认] [大] [更大]

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

removeAttribute() 方法删除指定的属性.


尝试一下 - 实例

这些实例使用XML文件books.xml.

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

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

删除文本节点
本例使用removeChild()从第一个<title>元素中删除文本节点.

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

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

按对象删除属性
本例使用removeAttributeNode()从所有<book>元素中移除所有属性.

×

Header


删除元素节点

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

移除节点时,其所有子节点也将移除。

此代码将从加载的xml中删除第一个<book>元素:

实例

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

xmlDoc.documentElement.removeChild(y); 尝试一下 »

实例说明:

  1. 假设 "books.xml" 被加载到 xmlDoc 中
  2. 设置变量 y 为要移除的元素节点
  3. 使用removeChild()方法从父节点移除元素节点


删除自己-删除当前节点

removeChild() 方法是删除指定节点的唯一方法.

导航到要删除的节点后,可以使用parentNode属性和removeChild()方法删除该节点:

实例

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

x.parentNode.removeChild(x); 尝试一下 »

实例说明:

  1. 假设"books.xml"被加载到 xmlDoc 中
  2. 将变量y设置为要删除的元素节点
  3. 使用parentNode属性和removeChild()方法删除元素节点

删除文本节点

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

实例

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y); 尝试一下 »

实例说明:

  1. 假设"books.xml"被加载到 xmlDoc 中
  2. 将变量x设置为第一个标题元素节点
  3. 将变量y设置为要删除的文本节点
  4. 使用removeChild()方法从父节点移除元素节点

使用removeChild()仅从节点中删除文本并不常见。可以改用nodeValue属性。见下一段。


清除文本节点

nodeValue 属性可用于更改文本节点的值:

实例

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = ""; 尝试一下 »

实例说明:

  1. 假设"books.xml"被加载到 xmlDoc 中
  2. 获取第一个title元素的第一个子节点。
  3. 使用nodeValue属性清除文本节点中的文本

按名称移除属性节点

removeAttribute() 方法按属性节点的名称删除属性节点。

实例: removeAttribute('category')

此代码删除第一个<book>元素中的"category"属性:

实例

x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category"); 尝试一下 »

实例说明:

  1. 假设"books.xml"被加载到 xmlDoc 中
  2. 使用 getElementsByTagName() 获取书本节点
  3. 从第一个book元素节点删除"category"属性

循环并删除所有元素的"category"属性:亲自试一试


按对象移除属性节点

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

实例: removeAttributeNode(x)

此代码删除所有<book>元素的所有属性:

实例

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. 假设"books.xml"被加载到 xmlDoc 中
  2. 使用 getElementsByTagName() 获取所有图书节点
  3. 对于每个book元素,检查是否有任何属性
  4. 当book元素中有属性时,删除该属性


0 人点赞过