The examples in this article summarize the methods of JavaScript node and list operations. Share it with everyone for your reference. The details are as follows:
(1) Create new node
createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点
(2) Add, remove, replace, insert
appendChild() removeChild() replaceChild() insertBefore()
(3) Search
getElementsByTagName() //通过标签名称 getElementsByName() //通过元素的Name属性的值 getElementById() //通过元素Id,唯一性
HTML examples to be used in this section
<ul id="myList"> <li>项目一</li> <li>项目二</li> <li>项目三</li> </ul>
1. Create element node
document.createElement() method is used to create elements, accepts one parameter, which is the tag name of the element to be created, and returns the created element node
var div = document.createElement("div"); //创建一个div元素 div.id = "myDiv"; //设置div的id div.className = "box"; //设置div的class
After creating the element, you also need to add the element to the document tree
2. Add element node
appendChild() method is used to add a node to the end of the childNodes list and returns the element node to be added
var ul = document.getElementById("myList"); //获得ul var li = document.createElement("li"); //创建li li.innerHTML = "项目四"; //向li内添加文本 ul.appendChild(li); //把li 添加到ul子节点的末尾
After adding:
<ul id="myList"> <li>项目一</li> <li>项目二</li> <li>项目三</li> <li>项目四</li> </ul>
The appendChild() method can also add an existing element and move the element from its original position to a new position
var ul = document.getElementById("myList"); //获得ul ul.appendChild(ul.firstChild); //把ul的第一个元素节点移到ul子节点的末尾
After running (IE):
<ul id="myList"> <li>项目二</li> <li>项目三</li> <li>项目一</li> </ul>
insertBefore() method, if you do not insert the node at the end, but want to place it at a specific position, use this method. This method accepts 2 parameters, the first is the node to be inserted, and the second is the reference Node, returns the element node to be added
var ul = document.getElementById("myList"); //获得ul var li = document.createElement("li"); //创建li li.innerHTML= "项目四"; //向li内添加文本 ul.insertBefore(li,ul.firstChild); //把li添加到ul的第一个子节点前
After adding:
<ul id="myList"> <li>项目四</li> <li>项目一</li> <li>项目二</li> <li>项目三</li> </ul>
var ul = document.getElementById("myList"); //获得ul var li = document.createElement("li"); //创建li li.innerHTML= "项目四"; //向li内添加文本 ul.insertBefore(li,ul.lastChild); //把li添加到ul的子节点末尾
After adding:
<ul id="myList"> <li>项目一</li> <li>项目二</li> <li>项目三</li> <li>项目四</li> </ul>
var ul = document.getElementById("myList"); //获得ul var li = document.createElement("li"); //创建li li.innerHTML= "项目四"; //向li内添加文本 var lis = ul.getElementsByTagName("li") //获取ul中所有li的集合 ul.insertBefore(li,lis[1]); //把li添加到ul中的第二个li节点前
After adding:
<ul id="myList"> <li>项目一</li> <li>项目四</li> <li>项目二</li> <li>项目三</li> </ul>
3. Remove element node
removeChild() method, used to remove nodes, accepts one parameter, which is the node to be removed, and returns the removed node. Note that the removed node is still in the document, but its position is no longer in the document.
var ul = document.getElementById("myList"); //获得ul var fromFirstChild = ul.removeChild(ul.firstChild); //移除ul第一个子节点 var ul = document.getElementById("myList"); //获得ul var lis = ul.getElementsByTagName("li") //获取ul中所有li的集合 ul.removeChild(lis[0]); //移除第一个li,与上面不同,要考虑浏览器之间的差异
4. Replace element node
replaceChild() method, used to replace nodes, accepts two parameters, the first parameter is the node to be inserted, the second parameter is the node to be replaced, and returns the replaced node
var ul = document.getElementById("myList"); //获得ul var fromFirstChild = ul.replaceChild(ul.firstChild); //替换ul第一个子节点 var ul = document.getElementById("myList"); //获得ul; var li = document.createElement("li"); //创建li li.innerHTML= "项目四"; //向li内添加文本 var lis = ul.getElementsByTagName("li") //获取ul中所有li的集合 var returnNode = ul.replaceChild(li,lis[1]); //用创建的li替换原来的第二个li
5. Copy node
cloneNode() method, used to copy nodes, accepts a Boolean parameter, true means deep copy (copy the node and all its child nodes), false means shallow copy (copy the node itself, not copy the child nodes)
var ul = document.getElementById("myList"); //获得ul var deepList = ul.cloneNode(true); //深复制 var shallowList = ul.cloneNode(false); //浅复制
The following is a complete example of creating a list project using JavaScript and copying child nodes:
This JavaScript code displays and creates list items, copies child nodes, and copies node trees. It is a very useful example, especially useful when creating tree menus.
The operation effect is as shown below:
The specific code is as follows:
<html> <head> <title>建立列表项目</title> <script language="JavaScript"> function printChilds(objNode) { var strMsg = "节点名称 =" + objNode.nodeName + "\n"; if (objNode.hasChildNodes()){ var nodeCount = objNode.childNodes.length; strMsg += "子节点数 = " + objNode.childNodes.length + "\n"; for(var i = 0; i < nodeCount; i++) strMsg += "标记名称 = " + objNode.childNodes[i].nodeName + "\n"; alert(strMsg); } } function copyNode(objNode, objDupNode, deep){ var tempNode = objDupNode.cloneNode(deep); objNode.appendChild(tempNode); } </script> </haed> <body id="myBody"> <h2>建立列表项目</h2> <hr> <ul id="myUL"> <li>项目1 <li>项目2 <ol id="myOL"> <li>次项目1 <li>次项目2 </ol> <li>项目3 </ul> <form> <input type="button" value="显示列表的子节点" onclick="printChilds(myUL)"> <input type="button" value="复制节点" onclick="copyNode(myUL, myUL.childNodes[1], false)"> <input type="button" value="复制节点树" onclick="copyNode(myUL.lastChild, myOL, true)"> </form> </body> </html>
I hope this article will be helpful to everyone’s JavaScript programming design.