javascript-DOM(1)

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="width:100px;height:100px;background:red;margin:100px;position:relative;">
18         <div  id="div2" style="width: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="width:100px;height:100px;background:red;margin:100px;">
18         <div  id="div2" style="width:100px;height:100px;background:yellow;position:absolute;left:100px;top:100px;"></div>
19     </div>    
20 </body>
21 </html>

运行效果:

  

  

posted @ 2017-05-16 14:16  fly-time  阅读(137)  评论(0编辑  收藏  举报