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>
效果: