1.创建DOM元素
createElement(标签名) 创建一个节点
appendChild(节点) 追加一个节点
例子:为ul插入li 并且为li元素插入一些文字
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> window.onload = function () { var oBtn = document.getElementById('btn'); var oUl = document.getElementById('ul1'); var oText = document.getElementById('text1'); oBtn.onclick = function () { var oLi = document.createElement('li'); oLi.innerHTML = oText.value; oUl.appendChild(oLi); } }; </script> </head> <body> <input id='text1' type="text"> <input id="btn" type="button" value="创建li"> <ul id="ul1"> </ul> </body> </html>
效果:
appendChild(节点) 追加一个节点,每次都在尾部追加。
appendChild有两种意思:1.先把元素从原有父级上删掉 2.添加到新的父级
如:点击移动按钮,使最上面的移到最下面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #ul1 { background: green; } </style> <script> window.onload = function () { var oUl1 = document.getElementById('ul1'); var oBtn = document.getElementById('btn1'); oBtn.onclick = function () { var oLi = oUl1.children[0]; oUl1.appendChild(oLi); }; }; </script> </head> <body> <input id='btn1' type="button" value="移动"> <ul id="ul1"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul> </body> </html>
效果:
借用appendChild可以排序:
如:点击排序按钮,使数字从小到大排序
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #ul1 { background: green; } </style> <script> window.onload = function () { var oUl1 = document.getElementById('ul1'); var oBtn = document.getElementById('btn1'); var aLi = oUl1.getElementsByTagName('li'); oBtn.onclick = function () { var arr = []; for(var i=0;i<aLi.length;i++){ arr[i] = aLi[i]; } arr.sort(function (li1,li2) { var num1 = parseInt(li1.innerHTML); var num2 = parseInt(li2.innerHTML); return num1 - num2; }); for(var i=0;i<arr.length;i++){ oUl1.appendChild(arr[i]); } }; }; </script> </head> <body> <input id='btn1' type="button" value="排序"> <ul id="ul1"> <li>16</li> <li>12</li> <li>36</li> <li>24</li> </ul> </body> </html>
效果:
2.插入元素
insertBefore(节点,原有节点) 在已有元素前插入
例子:倒序插入li
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> window.onload = function () { var oBtn = document.getElementById('btn'); var oUl = document.getElementById('ul1'); var oText = document.getElementById('text1'); var aLi = oUl.getElementsByTagName('li'); oBtn.onclick = function () { var oLi = document.createElement('li'); oLi.innerHTML = oText.value; if(aLi.length > 0){ oUl.insertBefore(oLi,aLi[0]); }else { oUl.appendChild(oLi); } } }; </script> </head> <body> <input id='text1' type="text"> <input id="btn" type="button" value="创建li"> <ul id="ul1"> </ul> </body> </html>
效果:
3.删除DOM元素
removeChild(节点) 删除一个节点
例子:删除li
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> window.onload = function () { var oUl = document.getElementById('ul1'); var aA = document.getElementsByTagName('a'); for(var i=0;i<aA.length;i++){ aA[i].onclick = function () { oUl.removeChild(this.parentNode); }; } }; </script> </head> <body> <ul id="ul1"> <li>111111<a href="#">删除</a></li> <li>222222<a href="#">删除</a></li> <li>333333<a href="#">删除</a></li> <li>444444<a href="#">删除</a></li> <li>555555<a href="#">删除</a></li> </ul> </body> </html>
效果: