创建一个新的HTML DOM 节点元素
To add a new element to the HTML DOM, you must create the element (element node) first, and then append it to an existing element.
为了添加一个新的element,必须提前创建一个节点,然后把它绑定到已经存在的一个元素节点上;
例子:
This is a paragraph.
This is another paragraph.
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);
var element = document.getElementById("div1");
element.appendChild(para);
例子解读:
This code creates a new
element:
var para = document.createElement("p");
To add text to the element, you must create a text node first. This code creates a text node:
var node = document.createTextNode("This is a new paragraph.");
Then you must append the text node to the element:
para.appendChild(node);
Finally you must append the new element to an existing element.This code finds an existing element:
var element = document.getElementById("div1");
This code appends the new element to the existing element:
element.appendChild(para);
Creating new HTML Elements - insertBefore()
The appendChild() method in the previous example, appended the new element as the last child of the parent.
If you don't want that you can use the insertBefore() method:
Example
This is a paragraph.
This is another paragraph.
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);
var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para,child);
Removing Existing HTML Elements
To remove an HTML element, you must know the parent of the element:
Example
This is a paragraph.
This is another paragraph.
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.removeChild(child);
The method node.remove() is implemented in the DOM 4 specification.
But because of poor browser support, you should not use it.
Example Explained
This HTML document contains a
element with two child nodes (two
elements):
This is a paragraph.
This is another paragraph.
Find the element with id="div1":
var parent = document.getElementById("div1");
Find theelement with id="p1":
var child = document.getElementById("p1");
Remove the child from the parent:
parent.removeChild(child);
It would be nice to be able to remove an element without referring to the parent.
But sorry. The DOM needs to know both the element you want to remove, and its parent.
Here is a common workaround: Find the child you want to remove, and use its parentNode property to find the parent:
var child = document.getElementById("p1");
child.parentNode.removeChild(child);
Replacing HTML Elements (替换元素)
To replace an element to the HTML DOM, use the replaceChild() method:
Example
This is a paragraph.
This is another paragraph.
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.replaceChild(para,child);