DOM—节点操作

节点属性

属性名称

描述

parentNode

返回节点的父节点

childNodes

返回子节点集合,childNodes[i]

firstChild

返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点

lastChild

返回节点的最后一个子节点

nextSibling

下一个节点

previousSibling

上一个节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<h2>2级标题标签</h2>
		<p>段落标签</p>
		<ul>
			<li>无序列表第1项</li>
			<li id="test">无序列表第2项</li>
			<li>无序列表第3项</li>
			<li>无序列表第4项</li>
		</ul>
	</body>
	<script>
		//获取id属性值为test的标签元素
		// var liEle = document.getElementById("test");
		// console.log(liEle);

		var liEle=document.getElementById("test");
		console.log(liEle);

		//获取父节点
		var ulEle=liEle.parentNode;
		console.log(ulEle);
		
		//获取子节点(子节点中包含元素之间的空格换行)
		var ulElement=document.querySelector("ul");
		var liEles=ulElement.childNodes;
		console.log(liEles);

		//第一个/最后一个节点
		console.log(ulElement.firstChild);
		console.log(ulElement.lastChild);


		//上一个/下一个节点
		console.log(liEle.previousSibling);
		console.log(liEle.nextSibling);

	</script>
</html>

Element属性

属性名称

描述

    firstElementChild

返回节点的第一个子节点

lastElementChild

返回节点的最后一个子节点

nextElementSibling

下一个节点

previousElementSibling

上一个节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<h2>2级标题标签</h2>
		<p>段落标签</p>
		<ul>
			<li>无序列表第1项</li>
			<li id="test">无序列表第2项</li>
			<li>无序列表第3项</li>
			<li>无序列表第4项</li>
		</ul>
	</body>
	<script>

		//第一个/最后一个元素(选择时不会包含空格换行)
		var ulEle = document.querySelector("ul");
		console.log(ulEle.firstElementChild);
		console.log(ulEle.lastElementChild);
		//上一个/下一个元素
		var liEle = document.querySelector("#test");
		console.log(liEle.previousElementSibling);
		console.log(liEle.nextElementSibling)
		
		//节点信息
		console.log(ulEle.nodeName)
		console.log(ulEle.nodeType)
		console.log(document.nodeType)
	</script>
</html>

节点信息

nodeName:节点名称

nodeValue:节点值

nodeType:节点类型

节点类型

NodeType

     元素element

1

属性attr 

  2

文本text

 3

注释comments

 8

   文档document

 9

操作节点属性

设置属性:

        setAttribute()方法添加指定的属性,并为其赋指定的值

获取属性:

        getAttribute() 方法返回指定属性名的属性值

删除属性:

        removeAttribute() 方法删除指定的属性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>操作节点属性</title>
	</head>
	<body>
		<img src="st.png" title="帅哥"  width="500px"/><br />
		<button onclick="get()">获取图片路径</button>
		<button onclick="changeImg()">修改图片</button>
		<button onclick="deleteTitle()">删除图片属性</button>
	</body>
	<script>
		//获取img标签
		var imgEle = document.querySelector("img");
		console.log(imgEle.src);
		
		function get(){
			var imgSrc=imgEle.getAttribute("src");
			console.log(imgSrc);
		}
		
		function changeImg(){
			imgEle.setAttribute("src","ch.png");
		}
		
		function deleteTitle(){
			imgEle.removeAttribute("title");
		}
		
	</script>
</html>

创建&插入

名称

描述

     document.createElement(“元素名”)

创建元素节点

document.createTextNode(“文本”)

  创建文本节点

A.appendChild( B)

 把B节点追加至A节点的末尾

insertBefore( A,B )

 把A节点插入到B节点之前

                cloneNode(deep)

 复制某个指定的节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<ul></ul>
	</body>
	<script>
		// 创建li元素
		var liEle=document.createElement("li");
		console.log(liEle);

		//创建文本节点
		var textNode=document.createTextNode("无序列表第一项");
		console.log(textNode);
		liEle .appendChild(textNode);
			
		//创建了li并且li中添加了内容,接下来将闯将li元素添加到ul
		var ulEle = document.querySelector("ul");
		ulEle.appendChild(liEle);
		console.log(ulEle);		
	</script>
</html>

 删除&替换

名称

描述

     父节点.removeChild( 子节点)

删除指定的节点

父节点.replaceChild( newNode, oldNode) 

 用其他的节点替换指定的节点

 style属性

      语法: HTML元素.style.样式属性="值"

document.getElementById("titles").style.color="#ff0000"; 
document.getElementById("titles").style.fontSize="25px ";

className属性

        语法:HTML元素.className="样式名称"

function over(){
     document.getElementById("cart").className="cartOver";
     document.getElementById("cartList").className="cartListOver";
     }
function out(){
     document.getElementById("cart").className="cartOut";
     document.getElementById("cartList").className="cartListOut";
     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值