JavaScript(DOM对象)

一.什么是DOM对象?

DOM--Document Object Model[文档对象模型]

当网页被加载时,浏览器会创建页面的文档对象模型。

 用HTML表示则:

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

二. 查找 HTML 元素

查找HTML元素有三种方法:

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

实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>DOM 通过 id 查找 HTML 元素</title>
		<script type="text/javascript">
		//得到点击事件
			function testById(){
				//通过id属性值查找HTMl元素p1
				var test = document.getElementById("p1");
				//改变大小
				test.style.fontSize="30px";
				//通过id属性值查找HTMl元素p2
				var test = document.getElementById("p2");
				//改变颜色
				test.style.color="red";
			}
		</script>
	</head>
	<body>
		<p id="p1">请把我的字体大小放大</p>
		<p id="p2">请把我的字体颜色变红</p>
		<p id="p2">我是否与同等id属性值改变</p>
		<input type="button" value="测试id属性值" onclick="testById()"/>
	</body>
</html>

 

 点击按钮事件

 当有id值相等时,只等得到第一个元素。

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

通过getElementsByTagName方法得到的结果依然是数组【只有一个元素的时候也是数组】

 实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>DOM 通过标签名查找 HTML 元素</title>
		<script type="text/javascript">
			function testByTagName(){
				var test = document.getElementsByTagName("p");
				test[0].style.color="red";
				test[1].style.color="brown";
				test[2].style.color="yellow";
			}
		</script>
	</head>
	<body>
		<p>我是第一个</p>
		<p>我是第二个</p>
		<p>我是第三个</p>
		<input type="button"value="测试标签名" onclick="testByTagName()"/>
	</body>
</html>

 

 点击按钮事件

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

通过getElementsByClassName(class属性值)方法得到的结果依然是数组

实例: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>DOM通过类名找到 HTML 元素</title>
		<script type="text/javascript">
			function testByClassName(){
				var test1 = document.getElementsByClassName("p1");
				test1[0].style.color="red";
				var test2 = document.getElementsByClassName("p2");
				test2[0].style.color="green";
				test2[0].style.fontSize="30px";
				test2[1].style.color="blue";
			}
		</script>
	</head>
	<body>
		<p class="p1">嗨!小可爱们!</p>
		<p class="p2">嗨!小可爱们!</p>
		<p class="p2">嗨!小可爱们!</p>
		<input type="button" value="测试标签名" onclick="testByClassName()"/>
	</body>
</html>

 点击按钮事件

 

 

三.DOM可以完成的功能

1.JavaScript 能够改变页面中的所有 HTML 元素

<1>.innerHTML 属性--改变页面中HTML 元素的文本内容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function shao(){
				var x = document.getElementById("p1");
				alert(x.innerHTML);
			}
		</script>
	</head>
	<body>
		<p id="p1">我<a href="#">爱</a>你</p>
		<input type="button"value="测试"onclick="shao()" />
	</body>
</html>

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

<2>.innerText 属性--改变页面中HTML 元素的文本内容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function shao(){
				var x = document.getElementById("p1");
				alert(x.innerText);
			}
		</script>
	</head>
	<body>
		<p id="p1">我<a href="#">爱</a>你</p>
		<input type="button"value="测试"onclick="shao()" />
	</body>
</html>

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

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

属性在html和css中都有。

Html中的属性---是给浏览器解释运行html标记时通过附加信息。

              往往出现在html的开始标记中,如果有多个中间使用空格分离。

<1.>修改内容

使用innerHTML改变:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>innerHTML 属性</title>
		<script type="text/javascript">
			function shao(){
				var test = document.getElementsByTagName("p");
				test[0].innerHTML="我不喜欢你!";
			}
		</script>
	</head>
	<body>
		<p>我喜欢你!</p>
		<input type="button"value="改变内容" onclick="shao()"/>
	</body>
</html>

 

改变后:

  

 使用innerText改变:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>innerText 属性</title>
		<script type="text/javascript">
			function shao(){
				var test = document.getElementById("p1");
				test.innerText="I was a king of the wild!";
			}
		</script>
	</head>
	<body>
		<p id="p1">我是一名<a href="">野王</a>!</p>
		<input type="button"value="改为英文" onclick="shao()"/>
	</body>
</html>

 

改变后:

  

<2.>得到和修改属性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>得到修改属性</title>
		<script type="text/javascript">
			function src1(){
				var img1 = document.getElementsByTagName("img");
				//得到图片路径
				alert(img1[0].src);
			}
			function src2(){
				var img2 = document.getElementsByTagName("img");
				img2[0].src="img/avatar2.png";
			}
		</script>
	</head>
	<body>
		<img src="img/avatar.png" >
		<input type="button"value="得到" onclick="src1()"/>
		<input type="button"value="修改" onclick="src2()"/>
	</body>
</html>

 得到路径:

原图:

 

修改后:

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

行内样式:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>图片显示与隐藏</title>
		<script type="text/javascript">
			function shao(){
				var img1 = document.getElementsByTagName("img");
				var src=img1[0].style.display;
				// img1[0].style.display="block";
				if(src=="block"){
					img1[0].style.display="none";
				}else{
					img1[0].style.display="block";
				}
			}
		</script>
	</head>
	<body>
		<input type="button"value="按钮" onclick="shao()"/><br>
		<img src="img/2048559.jpg" style="width: 300px;height: 300px;">
	</body>
</html>

 图片的显示与隐藏:

内嵌样式:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.img2 {
				width: 100px;
				height: 100px;
				border: 10px solid rosybrown;
			} 
		</style>
		
		<script type="text/javascript">
			function shao() {
				var imgobj = document.getElementById("img1");
				imgobj.className = "img2";
			}
		</script>
	</head>
	<body>
		<img id="img1" src="img/avatar2.png" /><br>
		<input type="button" value="测试控制css" onclick="shao();">
	</body>
</html>

 

4.JavaScript 能够对页面中的所有事件做出反应

<1>页面初始化事件

第一种:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>页面初始化事件</title>
		<script>
			function shao() {
				alert("页面初始化事件");
			}
		</script>
	</head>
	<body onload="shao()">
	</body>
</html>

 第二种:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>页面初始化事件</title>
		<script type="text/javascript">
			window.onload = function() {
					alert("页面初始化事件");
					}
		</script>
	</head>
	<body>
	</body>
</html>

 都可以显示页面初始化事件。

 <2.>点击事件

第一种:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>点击事件</title>
		<script type="text/javascript">
			window.onload = function() {
				var inputobj = document.getElementsByTagName("input");
				inputobj[0].onclick = function() {
					alert("看见我没?")
				}
			}
		</script>
	</head>
	<body>
		<input type="button" value="按钮" />
	</body>
</html>

第二种:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>wangxing</title>
	</head>
	<body>
		<h1>我的第一个 Web 页面</h1>
		<p>我的第一个段落。</p>
		<button onclick="myFunction()">点我</button>
		<script>
			function myFunction() {
				document.write(Date());
			}
		</script>
	</body>
</html>

 <3.>文本框的聚焦/失焦

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>onfocus和onblur</title>
		<script type="text/javascript">
			window.onload = function() {
				//测试文本框的聚焦/失焦
				var testObj1 = document.getElementById("test1");
				//设置聚焦事件
				testObj1.onfocus = function(){
					//清空文本框
					testObj1.value="";
				}
				//设置失焦事件
				testObj1.onblur = function() {
					//清空文本框
					alert(testObj1.value);
				}
			}
		</script>
	</head>
	<body>
		<input id="test1" type="text" value="请输入账号" />
	</body>
</html>

<4.>表单提交事件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function testsubmit() {
				alert("表单提交事件!");
				//return true;提交
				return false;//不提交
			}
		</script>
	</head>
	<body>
		<form action="login" method="get" onsubmit="return testsubmit();">
			<input type="text" name="username" /><br>
			<input type="password" name="password" /><br>
			<input type="submit" value="登陆" />
		</form>
	</body>
</html>

 当为true时,可以提交到后端。

当为false时,不可以提交到后端。

<5.>鼠标事件

第一种

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>鼠标进入移开</title>
		<script type="text/javascript">
			window.onload = function() {
				var imgObj = document.getElementById("img1");
				//进入
				imgObj.onmouseover=function(){
					imgObj.width="200";
					imgObj.height="200";
				}
				//移开
				imgObj.onmouseout=function(){
					imgObj.width="100";
					imgObj.height="100";
				}
			}
		</script>
	</head>
	<body>
		<img id="img1" src="img/2048559.jpg" width="100px" height="100px">
	</body>
</html>

第二种:

js文件

function fangda() {
	var imgdomobj = document.getElementById("new1");
	imgdomobj.width = "200";
	imgdomobj.height = "200";
}

function suoxiao() {
	var imgdomobj = document.getElementById("new1");
	imgdomobj.width = "100";
	imgdomobj.height = "100";
}

 html文件:


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>HTML head 元素中的子元素</title>
		<script src="new1.js"></script>
	</head>
	<body>
		<h4>HTML head 元素中的子元素--script元素【为当前网页中添加javascript脚本程序】</h4>
		<img src="img/微信图片_20210812182844.jpg" id="new1"
		width="100px" height="100px" 
		onmouseover="fangda();" onmouseout="suoxiao();"/>
	</body>
</html>

<6.>键盘事件 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>键盘事件</title>
		<script type="text/javascript">
			function testkey(event) {
				var code = event.keyCode;
				if (code == 37) {
					alert("向左");
				}
				if (code == 38) {
					alert("向上");
				}
				if (code == 39) {
					alert("向右");
				}
				if (code == 40) {
					alert("向下");
				}
				if (code == 13) {
					alert("暂停");
				}
			}
		</script>
	</head>
	<body onkeydown="testkey(event);">
	</body>
</html>

上键

 下键

左键

 

右键

 

四.创建和删除HTML 元素

1.创建appendChild

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>添加元素</title>
		<style type="text/css">
			#div1 {
				width: 300px;
				height: 300px;
				background-color: cadetblue;
			}
		</style>
		<script type="text/javascript">
			function shao() {
				//document.createElement("元素名称");  --  创建html元素
				//document.createTextNode("文本内容"); --  创建元素的文本内容
				//父元素的dom对象.appendChild(node); --  向父元素中追加元素
				var img1 = document.createElement("img");
				img1.src="img/avatar2.png";
				var divobj=document.getElementById("div1");
				divobj.appendChild(img1);
			}
		</script>
	</head>
	<body>
		<div id="div1">

		</div>
		<input type="button" value="添加元素" onclick="shao()" />
	</body>
</html>

 2.删除removeChild

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>删除元素</title>
		<style type="text/css">
			#div1{
				width: 300px;
				height: 300px;
				background-color: bisque;
			}
		</style>
		<script type="text/javascript">
			function shao(){
				var divobj=document.getElementById("div1");
				var hdom=document.getElementById("p1");
				divobj.removeChild(hdom);
			}
		</script>
	</head>
	<body>
		<div id="div1">
			<h4>我喜欢你</h4>
			<p id="p1">我喜欢你</p>
			<b>我喜欢你</b>
		</div>
		<input type="button"value="删除元素" onclick="shao()"/>
	</body>
</html>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值