javascript (三) 操作页面

DOM简介
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。

HTML DOM 树
在这里插入图片描述
节点树中的节点彼此拥有层级关系
父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的HTML。
如何改变 HTML 元素的内容 (innerHTML)如何改变 HTML 元素的样式 (CSS)?
如何对 HTML DOM 事件对做出反应?
如何添加或删除 HTML 元素?

1、获取标签的方式

通过 JavaScript操作 HTML 元素,可以使用内置对象document的方法来找到该标签。
以百度为例:
通过id:
在这里插入图片描述
通过css选择器:
在这里插入图片描述

2、操作标签内容

1.innerHTML 属性
获取元素内容的最简单方法是使用 innerHTML 属性。innerHTML 属性对于获取或替换 HTML 元素的内容很有用。

修改文本:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="n">
			<h1>666</h1>
		</div>
		<script type="text/javascript">
			document.querySelector('#n').innerText='javascript'
		</script>
	</body>
</html>

在这里插入图片描述
读取节点:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="n">
			<h1>666</h1>
		</div>
		<script type="text/javascript">
				var res = document.querySelector('#n').innerHTML
				console.log(res)
		</script>
	</body>
</html>

在这里插入图片描述
由此可见,获取的是html的标签,而写入节点时也可以通过标签的形式:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="n">
			<h1>666</h1>
		</div>
		<script type="text/javascript">
				document.querySelector('#n').innerHTML = '<input />'				
		</script>
	</body>
</html>

在这里插入图片描述
2.innerText 属性
获取文本:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="n">
			<h1>666</h1>
		</div>
		<script type="text/javascript">
				var res = document.querySelector('#n').innerText
				console.log(res)
		</script>
	</body>
</html>

在这里插入图片描述
修改文本原理与innerHTML一样。
3、操作标签属性

获取属性值:.属性、[属性]

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<a href="https://www.baidu.com"></a>
		<script type="text/javascript">
				var res = document.querySelector('a').href
				var res1 = document.querySelector('a')['href']
				console.log(res)
				console.log(res1)
		</script>
	</body>
</html>

在这里插入图片描述
修改属性:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<a href="https://www.baidu.com">网址</a>
		<script type="text/javascript">
				document.querySelector('a').href = 'https://www.taobao.com'
		</script>
	</body>
</html>

在这里插入图片描述

4、修改css样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input type="text" id='user'>
		<script type="text/javascript">
				document.querySelector('#user').style.background = 'red'
				document.querySelector('#user').style.height = '30px'
		</script>
	</body>
</html>

在这里插入图片描述

5、事件绑定

onclick事件:点击了该 HTML 元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<button type="button" onclick="work()">按钮</button>
		<script type="text/javascript">
				function work(){
					alert("666")
				}				
		</script>
	</body>
</html>

点击按钮会触发弹框
在这里插入图片描述
注意:由于页面上从上往下加载执行的,如果在元素未加载完成就执行javascript是会报错的,如果需要将javascript放在元素前面需要放在window.onload触发的函数里面。

window.onload在页面加载完成后执行

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
		<script type="text/javascript">
				window.onload = function(){
					var res = document.querySelector('#n').innerText
					console.log(res)
				}				
		</script>
	</head>
	<body>
		<div id="n">
			<h1>666</h1>
		</div>		
	</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

久醉绕心弦,

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

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

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

打赏作者

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

抵扣说明:

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

余额充值