DOM节点操作

一、节点的创建与追加

  1.创建节点创建节点: document.creatElement(“”)

  2.追加节点: document.appendChild(“”)

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	</body>
	<script>
		// 创建节点
		var _ul = document.createElement('ul');
		// 追加节点
		document.body.appendChild(_ul);
		var _li = document.createElement('li');
		_li.innerText = '你好呀!'
		_ul.appendChild(_li);
		var _li2 = document.createElement('li');
		_li2.innerText = '你好嘛?我的朋友'
		_ul.insertBefore(_li2,_ul.firstElementChild);
	</script>
</html>

效果图

image-20220811201002302

二、节点的删除与替换

  1.删除节点:

   tag.remove()

   父元素.removeChild(tag)

  2.替换节点:

   父元素.replaChild(替换,被替换)

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div class="box">
			<p>11</p>
			<p>22</p>
			<p>33</p>
		</div>
		<script>
			// 获取父元素
			var _box = document.querySelector('.box');
			// 获取第一个P元素
			var _firstP = _box.firstElementChild;
			// 删除获取的第一个P元素
			// _firstP.remove();
			_box.removeChild(_firstP);
			// 获取最后一个P元素
			var _listP = _box.lastElementChild;
			// 创建新的替换元素span
			var _span = document.createElement('span');
			_span.innerText = '哇哈哈';
			// 替换最后一个P元素
			_box.replaceChild(_span,_listP);
		</script>
	</body>
</html>

效果图

image-20220811201822728

三、属性操作

  元素.setAttribute(“属性名”,“属性值”) //添加

  元素.getAttribute(“属性名”) //获取
  元素.已有属性名=“”

  nodeType:获取节点类型

   元素结点返回1 、属性结点返回2 、文本结点返回3

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div class="box">
			<img src="" alt="">
		</div>
		<script>
			// 获取父元素
			var _box = document.querySelector('.box');
			// 自定义属性
			_box.setAttribute("a","桃子");
			// 获取定义的属性
			console.log(_box.getAttribute('a')); //桃子
			// 获取img元素
			var _img = document.querySelector('img');
			// img默认属性,可以直接 img.src来添加
			_img.src='../../img/猫咪.jpeg';
			
			// 输出父元素box的节点名称
			console.log(_box.nodeName);  //DIV
			// 输出img的节点类型
			console.log(_img.nodeType); //1
			// 输出新加属性的节点类型
			console.log(_box.getAttributeNode('a').nodeType);  //2
		</script>
	</body>
</html>

效果:

image-20220811202852931

四、select操作

  获取所有option:_select.options

  获取选中option下标:_select.selectedIndex

  获取文本值:options[index].innerText

  获取value值:_select.value

  创建option对象:

   var option= new Option(text,value,true,是否选中)

  插入option:

   _select.add(option,null)

   _select.add(option,option2)

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<select name="" id="">
			<option value="410000">河南省</option>
			<option value="430000">海南省</option>
		</select>
		<script>
			var _select = document.querySelector('select');
			_select.onchange=function(){
				//获取当前选中的option的value
				var val = _select.value;
				console.log(val);
				//获取当前选中的option的下标
				var Index = _select.selectedIndex;
				console.log(Index);
				//获取select下所有options
				var options = _select.options;
				//获取当前选中的option的文本值
				console.log(options[Index].innerText);
			}
			//创建节点
			var _option = document.createElement('option');
			_option.value = '420000';
			_option.innerText = '浙江省';
			//追加
			_select.appendChild(_option);
			
			//新方式new Option("text","value",true,"是否选中")
			var _option2 = new Option('山东省','490000',true,'true');
			//追加
			_select.add(_option2,null);
			// 插入
			_select.add(_option2,_select.firstElementChild);
		</script>
	</body>
</html>

效果展示

image-20220811203610143

五、获取内嵌样式和滚动距离

  获取内嵌样式

   document.defaultView.getComputedStyle(_wrapper,null).width

  获取window的滚动距离

   window.pageXOffset,window.pageYOffset

  获取元素的滚动距离:

   wrapper.scrollLeft,_wrapper.scrollTop

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			body {
				height: 1600px;
			}

			.wrapper {
				width: 300px;
				height: 300px;
				border: 3px solid black;
				overflow: auto;
			}

			.box {
				width: 200px;
				height: 600px;
				background-color: red;
				color: white;
			}
		</style>
	</head>
	<body>
		<div class="wrapper" style="font-size:20px;">
			<div class="box">
				乌拉拉
			</div>
		</div>
		<script>
			var _wrapper = document.querySelector('.wrapper');
			// 只能读取行内样式
			console.log(_wrapper.style.fontSize);
			//读取内嵌式
			console.log(document.defaultView.getComputedStyle(_wrapper,null).width);
			
			// 滚动事件
			window.onscroll=function(){
				console.log(window.pageXOffset,window.pageYOffset);
			}
			
			// 获取元素的滚动距离
			_wrapper.onscroll=function(){
				console.log(_wrapper.scrollLeft,_wrapper.scrollTop);
			}
		</script>
	</body>
</html>

效果展示:

内嵌与滚动

六、总结

  今天就到这里,这期内容还是比较多的,需多加练习。就这样,我们下期见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值