DOM 添加节点

  • appendChild() 方法

    appendChild() 方法将子节点添加到现有节点。
    新节点将添加(附加)在任何现有子节点之后。
    注意:如果节点的位置很重要,请使用 insertBefore()。
    此代码片段创建一个元素(<edition>),并将其添加到第一个<book>元素的最后一个子元素之后:
    newEle = xmlDoc.createElement("edition");
    
    xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
    尝试一下
    示例说明:
    • 假设 books.xml 已加载到 xmlDoc 中。
    • 创建一个新的元素节点<edition>
    • 将元素节点附加到第一个<book>元素
    此代码片段与上面的代码相同,但是新元素添加了一个值:
    newEle = xmlDoc.createElement("edition");
    newText=xmlDoc.createTextNode("first");
    newEle.appendChild(newText);
    
    xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
    尝试一下
    示例说明:
    • 创建一个新节点<edition>
    • 创建一个新的文本节点 “first”
    • 将文本节点追加到<edition>节点
    • 将<addition>节点附加到<book>元素
  • insertBefore() 方法

    由于 insertBefore() 方法在指定的子节点之前插入一个节点。
    当添加的节点的位置很重要时,此方法很有用:
    newNode = xmlDoc.createElement("book");
    
    x = xmlDoc.documentElement;
    y = xmlDoc.getElementsByTagName("book")[3];
    
    x.insertBefore(newNode,y);
    尝试一下
    示例说明:
    • 假设 books.xml 已加载到 xmlDoc 中。
    • 创建一个新的元素节点<book>
    • 将新节点插入最后一个<book>元素节点的前面
    如果 insertBefore() 的第二个参数为 null,则新节点将添加到最后一个现有子节点之后。
    x.insertBefore(newNode,null) 和 x.appendChild(newNode) 都会向 x 附加一个新的子节点。
  • 添加新属性

    setAttribute() 方法设置属性的值。
    xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
    尝试一下
    示例说明:
    • 假设 books.xml 已加载到 xmlDoc 中。
    • 将第一个 <book> 元素的属性 “edition” 的值设置为 “first”
    没有称为 add Attribute() 的方法
    如果该属性不存在,则 setAttribute() 将创建一个新属性。
    注意:如果属性已经存在,则 setAttribute() 方法将覆盖现有值。
  • insertData() 方法

    nsertData() 方法将数据插入到现有的文本节点中。
    insertData() 方法具有两个参数:
    • offset-从何处开始插入字符(从零开始)
    • string-要插入的字符串
    以下代码片段将 “Easy” 添加到已加载的XML的第一个 <title> 元素的文本节点中:
    xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");
    尝试一下