DOM基础
1、什么是DOM:
DOM是W3C(万维网联盟)的标准。
DOM定义了访问HTML和XML文档的标准:
"W3C文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。"
2、DOM节点
1)nodeType--节点类型
1---元素节点
3---文本节点
1 <!DOCTYPE html"> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 4 <title>无标题文档</title> 5 <script> 6 window.onload = function (){ 7 alert(document.body.childNodes[0].nodeType);//弹出结果为3 8 alert(document.body.childNodes[1].nodeType);//弹出结果为1 9 } 10 </script> 11 </head> 12 13 <body> 14 dfdfdas 15 <span>ddfdfdd</span> 16 </body> 17 </html>
运行效果:
2)childNodes--子节点个数(数组)有兼容性问题
使ul下面的子节点背景颜色变红色
代码:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script> window.onload = function (){ var oUl = document.getElementById('ul1'); for(var i=0;i<oUl.childNodes.length;i++){ if(oUl.childNodes[i].nodeType ==1){ oUl.childNodes[i].style.background = 'red'; ; } } } </script> </head> <body> <ul id="ul1"> <li>111</li> <li>222</li> <li>333</li> </ul> </body> </html>
运行效果:
3)children--子节点个数--兼容性比较好
代码:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script> window.onload = function (){ var oUl = document.getElementById('ul1'); //alert(oUl.children.length);//弹出数量为3 for( var i=0;i<oUl.children.length;i++){ oUl.children[i].style.background = 'green'; } } </script> </head> <body> <ul id="ul1"> <li>111</li> <li>222</li> <li>333</li> </ul> </body> </html>
4)
parentNode---获取父节点
点击链接,隐藏整个li
代码:
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>无标题文档</title> 6 <script> 7 window.onload = function (){ 8 var oA = document.getElementsByTagName('a'); 9 for(var i=0;i<oA.length;i++){ 10 11 oA[i].onclick = function (){ 12 this.parentNode.style.display = 'none';//获取父节点 13 } 14 } 15 } 16 </script> 17 </head> 18 19 <body> 20 <ul> 21 <li>aaaaaaa<a href="javascript:;">隐藏</a></li> 22 <li>bbbbbbb<a href="javascript:;">隐藏</a></li> 23 <li>ccccccc<a href="javascript:;">隐藏</a></li> 24 <li>dddddddd<a href="javascript:;">隐藏</a></li> 25 <li>eeeeeeeee<a href="javascript:;">隐藏</a></li> 26 </ul> 27 </body> 28 </html>
运行效果:
点击后已消失了2个;
5)offsetParent---定位父节点
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>无标题文档</title> 6 <script> 7 window.onload = function (){ 8 oDiv2 = document.getElementById('div2'); 9 oDiv2.onclick = function (){ 10 alert(this.offsetParent.tagName); //div1设置为相对定位时 11 } 12 } 13 </script> 14 </head> 15 16 <body> 17 <div id="div1" style="100px;height:100px;background:red;margin:100px;position:relative;"> 18 <div id="div2" style="100px;height:100px;background:yellow;position:absolute;left:100px;top:100px;"></div> 19 </div> 20 </body> 21 </html>
运行效果:
当div1不设置定位时:
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>无标题文档</title> 6 <script> 7 window.onload = function (){ 8 oDiv2 = document.getElementById('div2'); 9 oDiv2.onclick = function (){ 10 alert(this.offsetParent.tagName); 11 } 12 } 13 </script> 14 </head> 15 16 <body> 17 <div id="div1" style="100px;height:100px;background:red;margin:100px;"> 18 <div id="div2" style="100px;height:100px;background:yellow;position:absolute;left:100px;top:100px;"></div> 19 </div> 20 </body> 21 </html>
运行效果: