一、定义
dom - - - Document Object Model (文档对象声明)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom1</title> <style> li{ height: 30px; border: 1px solid #000; } </style> </head> <body> <ul id="uls"> <li></li> <li></li> </ul> </body> <script> var uls = document.getElementsByTagName("ul")[0]; alert(uls.childNodes.length) </script> </html>
![Dom小结 - 淡淡De影痕 - 淡淡De影痕的博客](http://img1.ph.126.net/fYvVXAeR0bz6k_AjND52Ww==/6619297493723166337.jpg)
![Dom小结 - 淡淡De影痕 - 淡淡De影痕的博客](http://img1.ph.126.net/gqVTZ4yvbPEbPPJ1FVvFhg==/6608686107003860920.jpg)
咱们来看看ul下有哪些节点。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom1</title> <style> li{ height: 30px; border: 1px solid #000; } </style> </head> <body> <ul id="uls"> <li></li> <li></li> </ul> </body> <script> var uls = document.getElementsByTagName("ul")[0]; for(var i = 0; i <= uls.childNodes.length; i++){ console.log(uls.childNodes[i].nodeType) } // nodeType -->3文本节点 // nodeType -->1元素节点 </script> </html>
![Dom小结 - 淡淡De影痕 - 淡淡De影痕的博客](http://img1.ph.126.net/TyVj61M7035HOGEBn-YPMA==/6619332678095255611.jpg)
4.parentNode(返回指定节点的父节点)<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom1</title> <style> li{ height: 30px; border: 1px solid #000; } </style> </head> <body> <ul id="uls"> <li></li> <li></li> </ul> </body> <script> var uls = document.getElementsByTagName("ul")[0]; for(var i = 0 ; i <= uls.children.length ; i++){ uls.children[i].style.background = "red"; } </script> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom1</title> <style> li{ height: 30px; border: 1px solid #000; } </style> </head> <body> <ul id="uls"> <li></li> <li></li> </ul> </body> <script> var uls = document.getElementsByTagName("ul")[0]; alert(uls.parentNode) </script> </html>
![Dom小结 - 淡淡De影痕 - 淡淡De影痕的博客](http://img0.ph.126.net/HRnvLKhHwPs_k8UfPNemRw==/6608692704073627119.jpg)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom3</title> <style> *{ padding: 0; margin: 0; } #main{ position: relative; width: 200px; height: 200px; background: red; } #box{ position: absolute; top: 100px; left: 100px; width: 50px; height: 50px; background: #000; } </style> </head> <body> <div id="main"> <div id="box"> </div> </div> </body> <script> // offsetParent属性会根据不同的定位显示不同的父级元素(与元素的绝对定位和相对定位有关) var box = document.getElementById("box") alert(box.offsetParent) </script> </html>
![Dom小结 - 淡淡De影痕 - 淡淡De影痕的博客](http://img1.ph.126.net/DTR3gg0aLbVcv53oG8Pvhw==/6608801555724778021.jpg)
![Dom小结 - 淡淡De影痕 - 淡淡De影痕的博客](http://img1.ph.126.net/-Hmo63x9nBFe1FBPXo4UzQ==/6608560762678294300.jpg)
7.lastChild(返回被选节点的最后一个子节点)<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom4</title> </head> <body> <ul id="uls"> <li></li> <li></li> <li></li> </ul> </body> <script> var uls = document.getElementById("uls"); if(uls.firstElementChild){ uls.firstElementChild.style.background = "red"; }else{ uls.firstChild.style.background = "red"; } </script> </html>
11.getAttribute(通过名称获取属性的值)<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom5</title> </head> <body> <input type="text" id="btn1" /> <input type="button" value="按钮" id="btn2" /> </body> <script> var btn1 = document.getElementById("btn1"); var btn2 = document.getElementById("btn2"); btn2.onclick = function(){ btn1.setAttribute("value","1234"); } // 获取:getAttribute(名称) // 设置:setAttribute(名称,值) // 删除:removeAttribute(名称) </script> </html>
14.appendChild(指定元素节点的最后一个子节点之后添加节点)<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <ul id="uls"> </ul> <input type="button" value="创建li" /> </body> <script> var uls = document.getElementsByTagName("ul")[0]; var btns = document.getElementsByTagName("input")[0]; btns.onclick = function(){ var lis = document.createElement("li"); uls.appendChild(lis); // 父级.appendChild(创建的元素); } </script> </html>
16.removeChild(删除父节点中的子元素)<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="text" /> <input type="button" value="插入元素" /> <ul> </ul> </body> <script> var txt = document.getElementsByTagName("input")[0]; var btn = document.getElementsByTagName("input")[1]; var uls = document.getElementsByTagName("ul")[0]; btn.onclick = function(){ var lic = document.createElement("li"); var lis = document.getElementsByTagName("li"); lic.innerHTML = txt.value; uls.insertBefore(lic,lis[0]); } </script> </html>
17.表格中的一些便捷操作<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dom9</title> <style> span{ color: red; } </style> </head> <body> <ul id="uls"> <li>jdjdjdjd<span>删除</span></li> <li>jdsdcsd<span>删除</span></li> <li>jdcsdsddjd<span>删除</span></li> <li>12123<span>删除</span></li> <li>343434jdjd<span>删除</span></li> </ul> </body> <script> var uls = document.getElementById("uls"); var spans = document.getElementsByTagName("span"); for(var i = 0; i<= spans.length; i++){ spans[i].onclick = function(){ uls.removeChild(this.parentNode); } } // removeChild 删除父元素中的子节点。 </script> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表格操作</title> </head> <body> <table id="tab1" border="1px" width="400px"> <thead> <tr> <td>ID</td> <td>姓名</td> <td>年龄</td> </tr> </thead> <tbody> <tr> <td>1</td> <td>张三</td> <td>21</td> </tr> <tr> <td>2</td> <td>王五</td> <td>22</td> </tr> <tr> <td>3</td> <td>李四</td> <td>22</td> </tr> </tbody> </table> </body> <script> var tab1 = document.getElementById("tab1"); // 用平常的获取标签的方法找到“王五”。 // 表格便捷操作 // tBodies --> getElementsByTagName("tbody") // rows --> getElementsByTagName("tr") // cells --> getElementsByTagName("td") // tHead --> 获取表头(tHead不是数组) // tFoot --> 获取页脚(tFoot不是数组) alert(tab1.tBodies[0].rows[1].cells[1].innerHTML) </script> </html>