JavaScript基础_8(DOM对象1)

DOM对象

1、DOM对象

(1)DOM–Document Object Model[文档对象模型]
(2)当网页被加载时,浏览器会创建页面的文档对象模型。
(3)HTML DOM 模型被构造为对象的树,如下图所示:
在这里插入图片描述

	<html>
		<head>
			<title>My title</title>
		</head>
		<body>
			<a href=””>My link</a>
			<h1>My header</h1>
		</body>
	</html>

2、 DOM可以完成的功能

(1)JavaScript 能够改变页面中的所有 HTML 元素
(2)JavaScript 能够改变页面中的所有 HTML 属性
(3)JavaScript 能够改变页面中的所有 CSS 样式
(4)JavaScript 能够对页面中的所有事件做出反应

3、查找 HTML 元素

(1)getElementById(id属性值);通过 id 查找 HTML 元素

  • 注意;
    当id属性值相同时,只能得到第一个元素

    	<!DOCTYPE html>
    	<html>
    		<head>
    			<meta charset="utf-8">
    			<title></title>
    			<script>
    				//getElementById(id属性值);通过 id 查找 HTML 元素
    				function testByID(){
    					var p1=document.getElementById("p1");
    					//p1--[object HTMLParagraphElement];  DOM对象
    					p1.style.fontSize="50px";
    					var p2=document.getElementById("p2");
    					//p2--[object HTMLParagraphElement] DOM对象
    					p2.style.color="red";
    					//当id属性值相同时,只能得到第一个元素
    					var p3=document.getElementById("p3");
    					//p3---[object HTMLParagraphElement] DOM对象
    					p3.style.fontSize="50px";
    					p3.style.color="red";
    				}
    			</script>
    		</head>
    		<body>
    			<p id="p1">p元素测试getElementById(id属性值)</p>
    			<p id="p2">p元素测试getElementById(id属性值)</p>
    			<p id="p3">p元素测试getElementById(id属性值)</p>
    			<p id="p3">p元素测试getElementById(id属性值)</p>
    			<input type="button" value="测试getElementById(id属性值)" 
    			onclick="testByID();">
    		</body>
    	</html>
    
    

在这里插入图片描述

(2)getElementsByTagName(标签名)通过标签名查找 HTML 元素

  • 注意;
    当元素在html文件中只有一个的时候,通过getElementsByTagName方法得到的结果依然是数组

    	<!DOCTYPE html>
    	<html>
    		<head>
    			<meta charset="utf-8">
    			<title></title>
    			<script>   
    					   //getElementsByTagName(标签名)通过标签名查找 HTML 元素
    					   function testByTagName(){
    						   var p=document.getElementsByTagName("p");
    						   var size=10;
    						   for(var i=0;i<p.length;i++){
    								var fonts=size*i+size;
    								p[i].style.fontSize=fonts+"px";
    								p[i].style.color="red";
    						   }
    					   }
    			</script>
    		</head>
    		<body>
    			<p>getElementsByTagName(标签名)通过标签名查找 HTML 元素</p>
    			<p>getElementsByTagName(标签名)通过标签名查找 HTML 元素</p>
    			<p>getElementsByTagName(标签名)通过标签名查找 HTML 元素</p>
    			<p>getElementsByTagName(标签名)通过标签名查找 HTML 元素</p>
    			<p>getElementsByTagName(标签名)通过标签名查找 HTML 元素</p>
    			<input type="button" value="测试getElementsByTagName(标签名)" onclick="testByTagName()">
    		</body>
    	</html>
    
    

在这里插入图片描述

(3) getElementsByClassName(class属性值)通过类名找到 HTML 元素

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<script type="text/javascript">
				function testByClassName(){
							 var p1= document.getElementsByClassName("p1");
							 //alert(p1); //[object HTMLCollection]
							 for(var i=0;i<p1.length;i++){
								 p1[i].style.color="red";
							 }
							 var h= document.getElementsByClassName("h");
							 //alert(h); //[object HTMLCollection]
							 for(var i=0;i<h.length;i++){
							 	h[i].style.color="blue";
							 }
						  }
			</script>
		</head>
		<body>
			<p class="p1">getElementsByClassName(class属性值)通过标签名查找 HTML 元素</p>
			<p class="p1">getElementsByClassName(class属性值)通过标签名查找 HTML 元素</p>
			<p class="p1">getElementsByClassName(class属性值)通过标签名查找 HTML 元素</p>
			
			<h2 class="h">getElementsByClassName(class属性值)通过标签名查找 HTML 元素</h2>
			<h2 class="h">getElementsByClassName(class属性值)通过标签名查找 HTML 元素</h2>
			<h2 class="h">getElementsByClassName(class属性值)通过标签名查找 HTML 元素</h2>
			
			<input type="button" value="getElementsByClassName" onclick="testByClassName()" />
		</body>
	</html>

在这里插入图片描述

4、JavaScript 能够改变页面中的所有 HTML 元素[元素的文本内容]

(1)innerHTML 属性–改变页面中HTML 元素的文本内容

  • 注意:
    innerHTML中设置的字符串内容中有html标记,那么这个被包含的html标记会被解释运行。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<script>
    			function  testinnerHTML(){
    				var text1=document.getElementById("text1");
    				var h1=document.getElementsByTagName("h1")[0];
    				//h1--[object HTMLHeadingElement]  Dom对象
    				var textvalue=text1.value;
    				h1.innerHTML=textvalue;
    				//h1.innerHTML=text1.value;
    				//h1.innerHTML=document.getElementById("text1").value;
    			}
    		</script>
    	</head>
    	<body>
    		<h1>innerHTML测试</h1>
    		<input type="text" id="text1" />
    		<input type="button" value="innerHTML测试" onclick="testinnerHTML()" />
    	</body>
    </html>
    
    

在这里插入图片描述

(2)innerText 属性–改变页面中HTML 元素的文本内容

  • 注意:
    innerText中设置的字符串内容中有html标记,那么这个被包含的html标记会被作为字符串输出。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<script>
    			function  testinnerText(){
    				var text1=document.getElementById("text1");
    				var h1=document.getElementsByTagName("h1")[0];
    				//h1--[object HTMLHeadingElement]  Dom对象
    				var textvalue=text1.value;
    				h1.innerText=textvalue;
    				//注意:innerText中设置的字符串内容中有html标记,那么这个被包含的html标记会被作为字符串输出。
    			}
    		</script>
    	</head>
    	<body>
    		<h1>欢迎使用Javascript</h1>
    		<input id="text1" type="text" ><br>
    		<input type="button" value="innerText 属性" onclick="testinnerText();">
    	</body>
    </html>
    
    

在这里插入图片描述

5. JavaScript 能够改变页面中的所有 HTML 属性

  • 控制 HTML 属性的格式:
    dom对象.具体的html属性名称=属性名称对应的属性值

    例如:

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<script>
    			function testattribute(){
    				//dom对象.具体的html属性名称=属性名称对应的属性值;
    				var imgdoc=document.getElementsByTagName("img")[0];
    				//alert(imgdoc); [object HTMLImageElement]
    				imgdoc.src="imgs/avatar2.png";
    				//imgdoc---dom对象
    				//src--具体的html属性名称
    				//"imgs/avatar2.png"---属性名称对应的属性值;
    			}
    		</script>
    	</head>
    	<body>
    		<img src="imgs/avatar.png" />
    		<input type="button" value="控制html属性" onclick="testattribute();">
    	</body>
    </html>
    
    

在这里插入图片描述

  •     属性在html和css中都有。
    (1)Html中的属性—是给浏览器解释运行html标记时通过附加信息。往往出现在html的开始标记中,如果有多个中间使用空格分离。
    例如:

    	<img ></img>--<img />
    	<img src=”” width=”” height=”” />
    
    src=”” width=”” height=””----Html标记中的属性 
    

     (2)css中的属性----是用来改变html元素的样式。

               (2)-1、在html开始元素中通过style属性
               例如:

		<div style=”width:100px;height:100px”></div>
		style---是html属性
		width:100px;height:100px----css属性

               (2)-2、在style元素中和“.css”文件中

			选择器{
			     css中的属性 
			}

6. JavaScript 能够改变页面中的所有 CSS 样式

  • 格式:
    dom对象.style.具体的css属性名称=属性名称对应的属性值;

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<script>
    			function  testCss(){
    				//dom对象.style.具体的css属性名称=属性名称对应的属性值;
    				var imgdoc=document.getElementsByTagName("img")[0];
    				var button=document.getElementById("but1");
    				var hdoc=document.getElementsByTagName("h1")[0];
    				//alert(hdoc.innerText);
    				//alert(hdoc.innerHTML);
    				var buttext=button.value;
    				//alert(buttext);
    				if(buttext=="隐藏"){
    					button.value="显示";
    					imgdoc.style.display="none";
    				}
    				if(buttext=="显示"){
    					button.value="隐藏";
    					imgdoc.style.display="block";
    				}
    			}
    		</script>
    	</head>
    	<body>
    		<h1>hello<a href="#">test</a></h1>
    		<img src="imgs/avatar.png" />
    		<input id="but1" type="button" value="隐藏" onclick="testCss();">
    	</body>
    </html>
    
    

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值