前端路线--JavaScript篇(day06)

获取元素节点

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		div{

		}
		.box{

		}
		#pox{

		}
	</style>
</head>
<body>
	<div class="box" id="pox">
		hello
	</div>
	<div class="box">
		world
	</div>
	<p>段落1</p>
	<p>段落2</p>
	<p>段落3</p>
	<ul id="list">
		<li>无序列表1</li>
		<li>无序列表2</li>
		<li>无序列表3</li>
	</ul>
	<ul>
		<li>无序列表4</li>
		<li>无序列表5</li>
		<li>无序列表6</li>
	</ul>
	
	<form action="" method="">
		<input type="radio" name="sex" value="男" /><input type="radio" name="sex" value="女" /></form>
	
	<script>
		// 1、根据ID获取元素(推荐使用)
		var oPox = document.getElementById('pox');
		console.log(oPox)

		// document  文档
		// .         的
		// get       获取
		// Element   元素
		// By        通过
		// Id        ID

		// 通过ID获取文档的元素

		// 2、通过标签名去获取元素
		// 通过标签名获取的元素是一个集合,有下标、有长度、要通过下标调用
		var oP = document.getElementsByTagName('p');
		console.log(oP);   //获取多个
		console.log(oP[1]);  //获取单独的一个元素

		// 这种方式获取的就不再是一个集合,直接获取某个标签
		var oDiv = document.getElementsByTagName('div')[0];
		console.log(oDiv)

		// 3、通过class获取元素(用的少)
		// 通过类名获取的元素是一个集合,有下标、有长度、要通过下标调用
		var oText = document.getElementsByClassName('box');
		console.log(oText)
		console.log(oText[1])

		// 4、通过父元素获取子元素(进阶用法)
		// 第一步通过ID获取父元素
		var list = document.getElementById('list');  

		// 第二步通过标签名获取父元素下的元素
		var oLi = list.getElementsByTagName('li');
		console.log(oLi)
		
		//4.根据name的属性值来获取节点
		var inputNode=document.getElementsByName('sex');
		console.log(inputNode);
	</script>
</body>
</html>

获取特殊元素的方法

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>百度以下</title>
</head>
<body>
	<form action="">
		<input type="text" name="">
		<input type="button" value="普通按钮">
	</form>
	<img src="https://static.leiphone.com/uploads/new/homepagerecommend/pic/202201/61dd1f2bc96e5.png?imageMogr2/thumbnail/!388x391r/gravity/Center/crop/388x391/quality/90" alt="">
	<img src="https://static.leiphone.com/uploads/new/latest/61dbce641b40e.jpg?imageMogr2/thumbnail/480x290!/quality/90" alt="">
	<a href="">百度一下</a>
	<a href="">你就知道</a>
	<a>打酱油的</a>
	<script>
		var oHtml = document.getElementsByTagName('html');
		console.log(oHtml[0])

		// 1、获取整个html元素-----包含整个文档元素
		console.log(document.documentElement)

		// 2、获取body
		console.log(document.body);
		console.log(document.head);

		// 3、获取title网页的标题
		console.log(document.title);

		// 4、获取网页整个的URL路径
		console.log(document.URL);

		// 5、获取整个网页的表单元素
		console.log(document.forms[0]);

		// 6、获取所有的图片元素
		console.log(document.images[1]);

		// 7、获取所有带href属性的a元素
		console.log(document.links);

		// var oBody = document.body;
		// oBody.innerText = '获取元素节点';
		
		//8.获取域名
		console.log(document.domain);
		
		//9.获取script节点
		console.log(document.scripts);
	</script>
</body>
</html>

改变HTML的内容

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		div{

		}
		.box{

		}
		#pox{

		}
	</style>
</head>
<body>
	<div class="box" id="pox">
		hello
	</div>
	<div class="box" id="pox1">
		hello
	</div>
	<div id="main">
		<div class="box">
			<p>文本节点</p>
		</div>
		<div class="box">
			<p>文本节点</p>
		</div>
		<div class="box">
			<p>文本节点</p>
		</div>
	</div>
	<script>
		// .innerText  改变元素内部的文本内容
		// .innerHTML  改变元素内部的HTML内容

		// 根据ID获取元素
		var oPox = document.getElementById('pox');
		
		// 1、改变元素内容
		// 每次添加内容都会覆盖原来的内容
		oPox.innerText = '改变后的盒子';
		oPox.innerText = oPox.innerText+'改变后的盒子';
		// 通过+=进行叠加
		oPox.innerText += '改变后的盒子';


		// 2、改变标签结构
		var oPox1 = document.getElementById('pox1');

		oPox1.innerHTML = '<span>我是span内容1</span>';
		oPox1.innerHTML += '<span>我是span内容2</span>';
		oPox1.innerHTML += '<img src="../课件/media/fa2e7c4b1489716e056ac2aafc5e4c0f.png" alt="">';

		// 获取元素(循环添加内容)
		var oP = document.getElementsByTagName('p');

		// 通过遍历一次性改变多个标签内容
		for(var i=0;i<oP.length;i++){
			oP[i].innerText = '改变过后的内容'
		}
	</script>
</body>
</html>

改变CSS内容

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		#main{
			width: 200px;
			height: 200px;
			background-color: #f00;
		}
	</style>
</head>
<body>
	<div id="main">
		文本节点
	</div>
	<script>
		// 获取元素
		var oMain = document.getElementById('main');
		console.log(oMain)

		oMain.style.color = '#0f0';
		oMain.style.fontSize = '32px';
		oMain.style.backgroundColor = 'yellow';
		oMain.style.borderBottom = '10px solid #00f';
		// 如果通过js改变css样式,碰见横杠要取消,并把下个单词的首字母大写
	</script>
</body>
</html>

改变标签属性

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		#main{
			width: 200px;
			height: 200px;
			background-color: #f00;
		}
	</style>
</head>
<body>
	<div id="main" class="box" title="我是提示文本">文本节点</div>

	<input type="password" id="input" placeholder="提示信息">

	<div id="one"></div>

	<a href="https://www.baidu.com" id="baidu">百度一下</a>

	<script>
		var main = document.getElementById('main');
		var oInput = document.getElementById('input');
		var one = document.getElementById('one');
		var baidu = document.getElementById('baidu');

		//获取标签的属性
		var myId = main.getAttribute('id');   //获取main的id属性
		var myClazz = main.getAttribute('class');
		var myTitle = main.getAttribute('title');
		console.log(myId,myClazz,myTitle)

		// 添加修改标签的属性
		main.setAttribute('lang','zh');
		main.setAttribute('title','hello world');
		main.setAttribute('class','box pox');
		//删除标签的属性
		main.removeAttribute('title');

		// 也可以通过这种方式获取修改添加属性
		one.className = 'nav';
		one.id = 'nav';
		oInput.placeholder = '啊啊啊 啊啊啊啊啊';
		baidu.href = 'https://www.taobao.com';
	</script>
</body>
</html>

新建并且追加

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		
	</style>
</head>
<body>
	<div id="main">
		<p id="box1">box1</p>
		<p id="box2">box2</p>
		<p id="box3">box3</p>
	</div>

	<script>
		// 1、获取元素
		var oMain = document.getElementById('main');

		// 2、新建元素
		var newElement = document.createElement('p');
		newElement.setAttribute('id','box4');
		newElement.innerText = 'box4';
		console.log(newElement)
		
		//3.创建文本节点
		var txt=document.createTextNode('你好');
		// 4、追加到div内容的最后
		oMain.appendChild(newElement);
	</script>
</body>
</html>

操作元素–插入

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		
	</style>
</head>
<body>
	<div id="main">
		<p id="box1">box1</p>
		<p id="box2">box2</p>
		<p id="box3">box3</p>
	</div>

	<script>
		// 1、获取元素
		var oMain = document.getElementById('main');

		// 2、新建元素
		var newElement = document.createElement('p');
		newElement.setAttribute('id','box4');
		newElement.innerText = 'box4';
		console.log(newElement)

		// 3、获取目标元素box2
		var targetElement = document.getElementById('box2');

		// 4、将新元素插入到box2目标元素的前面
		oMain.insertBefore(newElement,targetElement);
	</script>
</body>
</html>

操作元素–替换

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		
	</style>
</head>
<body>
	<div id="main">
		<p id="box1">box1</p>
		<p id="box2">box2</p>
		<p id="box3">box3</p>
	</div>

	<script>
		// 1、获取元素
		var oMain = document.getElementById('main');

		// 2、新建元素
		var newElement = document.createElement('p');
		newElement.setAttribute('id','box4');
		newElement.innerText = 'box4';
		console.log(newElement)

		// 3、获取目标元素box2
		var targetElement = document.getElementById('box2');

		// 4、将新元素替换box2
		oMain.replaceChild(newElement,targetElement);
		
	</script>
</body>
</html>

操作元素–删除

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		
	</style>
</head>
<body>
	<div id="main">
		<p id="box1">box1</p>
		<p id="box2">box2</p>
		<p id="box3">box3</p>
	</div>

	<script>
		// 1、获取元素
		var oMain = document.getElementById('main');

		// 2、获取要被删除的元素
		var targetElement = document.getElementById('box2');

		// 3、通过删除oMain 的孩子 box2
		oMain.removeChild(targetElement)
		
	</script>
</body>
</html>

操作元素–复制

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		
	</style>
</head>
<body>
	<div id="main">
		<p id="box1">box1</p>
		<p id="box2">box2</p>
		<p id="box3">box3</p>
	</div>

	<script>
		// 1、获取元素
		var oMain = document.getElementById('main');

		// 浅拷贝(只拷贝当前元素)
		var copy1 = oMain.cloneNode(false);
		// 深拷贝(拷贝当前元素以及当前元素的所有后代元素)
		var copy2 = oMain.cloneNode(true);
		
		console.log(copy1)
		console.log(copy2)

		document.body.appendChild(copy1);
		document.body.appendChild(copy2);
	</script>
</body>
</html>

根据元素的关系访问元素

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		
	</style>
</head>
<body>
	<div>
		<div>
			<p>box1</p>
			<p>box2</p>
			<p>box3</p>
		</div>
		<div id="box2">
			<p>box4</p>
			<p>box5</p>
			<p>box6</p>
		</div>
		<div>
			<p>box7</p>
			<p>box8</p>
			<p>box9</p>
		</div>
	</div>

	<script>
		// 1、获取box2元素
		var box2 = document.getElementById('box2');

		// 获取父节点
		console.log(box2.parentNode);

		// 上一个兄弟节点(空白节点、幽灵节点)
		console.log(box2.previousSibling);
		// 上一个元素兄弟节点
		console.log(box2.previousElementSibling);

		// 下一个兄弟节点(空白节点、幽灵节点)
		console.log(box2.nextSibling);
		// 下一个元素兄弟节点
		console.log(box2.nextElementSibling);

		// 获取第一个孩子节点
		console.log(box2.firstChild);
		console.log(box2.firstElementChild);

		// 获取最后一个孩子节点
		console.log(box2.lastChild);
		console.log(box2.lastElementChild);

		// 获取所有的孩子(获取的是一个伪数组)可以通过下标获取
		console.log(box2.children);
		// 获取所有的孩子(包含空白节点、幽灵节点)
		console.log(box2.childNodes);


		// 找box2父亲的父亲
		console.log(box2.parentNode.parentNode);
		// 找box2的上一个兄弟的上一个兄弟
		console.log(box2.previousSibling.previousSibling);
		// 找box2的下一个兄弟的第一个孩子
		console.log(box2.nextElementSibling.firstElementChild);
		// 找box2的下一个兄弟的第二个孩子
		console.log(box2.nextElementSibling.children[1]);
	</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值