Javascript之DOM

DOM

document是整个文档的dom

查找元素

可以通过idclassnametagName查找标签==id获取单个,其余获取的是数组==

//通过id查找 <p id="id">假设这是一个标签<p/>
var tag = document.getElementById("id")
tag.click = function(){
    this.innerText = "123"//修改文本内容
}

//通过class查找 <p class="class">假设这是一个标签<p/>
var clas = document.getElmentsByClass("class")[0]
clas.click = function(){
    this.innerText = "123"
}

//通过name查找 <input name="name" value="">假设这是一个标签<input/>
var name = document.getElmentsByName("name")[0]
name.value = "123123"

//通过标签名查找 <p>假设这是一个标签<p/>
var clas = document.getElmentsByTagName("p")[0]
clas.innerText = "12345"

获取、修改元素内容

通过document拿到某一个标签后,进而可以获得元素的内容,并加以修改

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<button onclick="fun01()">获取属性 - innerText</button>
		<button onclick="fun02()">设置属性 - innerText</button>
		<h1>这是一个h1标签</h1>
		<button onclick="fun03()">获取属性 - innerHTML</button>
		<button onclick="fun04()">设置属性 - innerHTML</button>
		<h1>这是一个h1标签</h1>
		<h2></h2>
	</body>
	<script>
		
		var h1 = document.getElementsByTagName("h1")[0]
		var h2 = document.getElementsByTagName("h1")[1]
		function fun01(){
			console.log(h1.innerText)
		}
		
		function fun02(){
			h1.innerText = "这是一个修改后的h1标签"
		}
		
		function fun03(){
			console.log(h2.innerHTML)
		}
		
		function fun04(){
			h2.innerHTML = "<h2>这是一个修改后的h1标签</h2>"
		}
		
	</script>
</html>

获取、修改属性

通过document获取到的标签,不仅可以获取内容,还可以获取属性与样式并加以修改

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<button onclick="fun01()">获取属性</button>
		<button onclick="fun02()">设置属性</button>
		<br />

		<img src="../img/hyg.jpg" width="100px" height="100px" />
		<br />
		<button onclick="fun03()">获取属性</button>
		<button onclick="fun04()">设置属性</button>
		<br />
		<img src="../img/avatar.jpg" width="100px" height="100px" />
		<h2></h2>
	</body>
	<script>
		var img1 = document.getElementsByTagName("img")[0]
		var img2 = document.getElementsByTagName("img")[1]

		function fun01() {
			console.log(img1.src)
			console.log(img1.width)
			console.log(img1.height)
		}

		function fun02() {
			img1.src = "../img/avatar.jpg"
			img1.width = "200"
			img1.height = "200"
		}

		function fun03() {
			console.log(img2.getAttribute("src"))
			console.log(img2.getAttribute("width"))
			console.log(img2.getAttribute("height"))
		}

		function fun04() {
			img2.setAttribute("src", "../img/hyg.jpg")
			img2.setAttribute("width", "100%")
			img2.setAttribute("height", "100%")
		}
	</script>
</html>

鼠标事件

鼠标有多种事件,包括点击松开移入移出等四种常见事件,其中,移入和移出分别对应两种

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			img{
				width: 200px;
				height: 200px;
			}
		</style>
	</head>
	<body>
		<img src="../img/hyg.jpg" alt="" 
		onmousedown="f1()"
		onmouseup="f2()"
		onmouseleave="f3()"
		onmouseover="f4()"
		onmouseenter="f5()"
		onmouseout="f6()"
		/>
	</body>
	<script>
		function f1(){console.log("mousedown")}//鼠标点击
		function f2(){console.log("mouseup")}//鼠标松开点击
		function f3(){console.log("mouseleave")}//鼠标离开
		function f4(){console.log("mouseover")}//鼠标在上方
		function f5(){console.log("mouseenter")}//鼠标鼠标进入
		function f6(){console.log("mouseout")}//鼠标不再上方
	</script>
</html>

键盘事件

键盘在输入时按照顺序会有三个事件:onkeydownonkeypressonkeyup

onkeypress只能监听字母和数字,不能监听ECS、ALT等按键

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input type="text" onkeydown="f1()" onkeypress="f3()" onkeyup="f2()" />
	</body>
	<script>
		function f1() {
			console.log("keydown")
		}
		
		//onkeypress 事件只能监听字母和数字
		function f3() {
			console.log("keypress")
		} 
		
		function f2() {
			console.log("keyup")
		}
	</script>
</html>

页面加载事件

在一个HTML文件中,页面的加载顺序是从上往下加载,如果当需要加载某个标签时,js代码比标签更先加载,那么代码就会失效

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			window.onload = () => {
				var h1 = document.getElementsByTagName("h1")[0]
				h1.onclick = () => {
					h1.style.color = "red"
					console.log(h1.style.color)
				}
			}
		</script>
	</head>
	<body>
		<h1>这是一个h1标签</h1>
	</body>
</html>

焦点事件

焦点事件分为获得焦点事件和失去焦点事件,其主要目的就是关注点的变化(比如我需要输入信息。我的焦点就在输入框)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input type="text" placeholder="请输入..." onfocus="f1(this)" onblur="f2(this)"/>
	</body>
	<script>
		function f1(o){o.placeholder = ""}//获取焦点事件
		function f2(o){o.placeholder = "请输入..."}//失去焦点事件
	</script>
</html>

操作节点

这里的操作节点指的是新增一个标签,步骤分为:1、创建标签 2、为标签添加内容和属性 3、将标签插入到某个位置中

而删除标签则是由父标签直接操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<button onclick="f1()">新建p标签</button>
		<button onclick="f2()">新建img标签</button>
		<button onclick="f3()">删除img标签</button>
		<div id="newAera"></div>
	</body>
	<script>
		function f1(){
			var p = document.createElement("p")
			var text = document.createTextNode("这是一个新建的文本")
			p.appendChild(text)
			newAera.appendChild(p)
		}
		function f2(){
			var img = document.createElement("img")
			img.setAttribute("src", "../img/hyg.jpg")
			img.setAttribute("width", "100px")
			img.setAttribute("height", "100px")
			newAera.appendChild(img)
		}
		function f3(){
			var img = document.getElementsByTagName("img")[0]
			newAera.removeChild(img)
		}
		
	</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拖把湛屎,戳谁谁死

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值