JavaScript中Node节点对象的增、删、改 、查

Node节点对象?
        HTML文档中的每一个标签都是一个节点对象,节点对象具有自己的属性和方法。        
 Node节点对象作用?
        可以动态的添加、修改(替换)、删除、克隆html元素节点。        
 如何操作节点?
        Node节点对象的属性和方法解决。

1. 查   ==>> 后面需要用到,先学

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<select class="testLei" id="city">
			<option value="cd">成都</option>
			<option value="cq">重庆</option>
			<option value="km">昆明</option>
		</select>
		<script type="text/javascript">
			//1.常用的Node对象的属性:
			/*
			parentNode	父节点
			
			firstChild	列表中的第一个节点
			firstElementChild  第一个元素节点
			
			lastChild	列表中的最后一个节点
			lastElementChild 最后一个元素节点
			
			childNodes	所有子节点的集合
			
			previousSibling	上一个兄弟节点
			previousElementSibling	上一个兄弟元素节点
			
			nextSibling	下一个兄弟节点
			nextElementSibling  下一个兄弟元素节点
			
			
			nodeName	节点名称
			nodeValue	节点值
			nodeType	节点类型
			
			getAttributeNode("属性的名称")  获取属性节点
			*/
			var city=document.getElementById("city");
			var ops=city.options;
			
			//option的父亲是select
			console.log(ops[0].parentNode);
			
			//找大儿子,文本或子元素
			console.log(city.firstChild);
			console.log(city.firstElementChild);
			
			//找幺儿子,文本或子元素
			console.log(city.lastChild);
			console.log(city.lastElementChild);
			
			//找所以的儿子的集合
			console.log(city.childNodes);
			var sons=city.childNodes;
			for (var i = 0; i < sons.length; i++) {
			    console.log(sons[i]);
			}
			
			//找兄弟
			console.log(ops[1].nextSibling);
			console.log(ops[1].nextElementSibling);
			
			
			//------------------------------------------------------------------
			
			//输出元素节点名称、值、类型
			//city 是一个元素节点
			console.log(city.nodeName,city.nodeValue,city.nodeType);
			
			//输出文本节点名称、值、类型
			var textNode=city.firstElementChild.firstChild;//第一option的文本,即“成都”
			console.log(textNode.nodeName,textNode.nodeValue,textNode.nodeType);
			
			//输出属性节点名称、值、类型
			var shuxingNode=city.getAttributeNode("class");
			console.log(shuxingNode.nodeName,shuxingNode.nodeValue,shuxingNode.nodeType);
			
			//-------------------------------------------------------------------
			/*
				               nodeName	     nodeValue	nodeType
				Element(元素)	           标签名称	     null	    1
				Attribute(属性)  属性的名称	              属性的值	    2
				Text(文本)	    #text	     文本的内容  	3
		    */
		</script>
	</body>
</html>

2. 增

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			1.增加的操作:
			createElement("标签名称") 	创建一个元素节点
			createTextNode("文本的内容") 	创建文本节点
			setAttribute("属性名称","属性的值")	设置属性(创建属性节点)
			
			父元素.appendChild("子元素节点")  在父元素的末尾添加一个儿子节点
			父元素.insertBefore("新的节点", "指定位置的节点")	在父元素的指定位置插入一个新的节点
			*/
			
			//添加一个a标签,href属性为http://www.itsource.cn,内容为”源码时代教育”,添加到网页的body中
			
			//添加节点的五部曲:
			//(1)创建元素节点
			var a=document.createElement("a");
			
			//(2)创建文本节点
			var aText=document.createTextNode("源码时代教育");
			
			//(3)创建属性节点
			a.setAttribute("href","http://www.itsource.cn");
			
			//(4)文本值A的儿子
			a.appendChild(aText);
			
			//(5)把创建的所有元素(标签,属性,文本)添加到指定位置
			document.body.appendChild(a);
		</script>
		<select class="testLei" id="city">
			<option value="cd">成都</option>
			<option value="cq">重庆</option>
			<option value="km">昆明</option>
		</select>
		<script type="text/javascript">
			//在重庆的前面加入一个选项是贵州
			//(1)找父亲
			var city=document.getElementById("city");
			
			//(2)创建一个option标签
			var op=document.createElement("option");
			
			//(3)创建一个文件节点 贵州
			var opText=document.createTextNode("贵州");
			
			//(4)设置option的value属性
			op.setAttribute("value","gz");
			op.setAttribute("selected","selected")
			
			//(5)把文本添加到选项里面
			op.appendChild(opText);
			
			//(6)添加到结尾就用appendChild,添加到自定位置就用insertBefore
			city.insertBefore(op,city.options[1]);
		</script>
	</body>
</html>

3. 改

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<select class="testLei" id="city">
			<option value="cd">成都</option>
			<option value="cq">重庆</option>
			<option value="beijing">beijing</option>
			<option value="tianjin">天津111</option>
			<option value="wh">武汉</option>
			<option value="km">昆明</option>
		</select>
		<script type="text/javascript">
			//replaceChild(newnode, oldnode) 将childNodes中的oldnode替换成newnode
			
			var city=document.getElementById("city");
			var ops=city.options;
			
			//方法1   直接修改属性的值
			//ops[2].text="北京";
			ops[2].innerText="北京";
			ops[2].value="bj";
			ops[2].setAttribute("name","测试");
			
			//方法2
			//创建一个新的节点
			var op=document.createElement("option");
			var opText=document.createTextNode("天津");
			op.appendChild(opText);
			op.setAttribute("value","tj");
			op.setAttribute("selected","selected");
			
			//用新的节点替换旧的节点
			city.replaceChild(op,ops[3]);			
			
		</script>
	</body>
</html>

4. 删

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<select class="testLei" id="city">
			<option value="cd">成都</option>
			<option value="cq">重庆</option>
			<option value="beijing">beijing</option>
			<option value="tianjin">天津111</option>
			<option value="wh">武汉</option>
			<option value="km">昆明</option>
		</select>
		<script type="text/javascript">
			//removeChild(node)	从childNodes中删除node
			//remove()  找到自己干掉自己
			//hasChildNodes()	当有子节点时返回真true,否则为假false
			
			
			//删除单个指定的节点--武汉
			//city.removeChild(ops[4]);
			ops[4].remove();
			
			//删除所的节点
			//最简单的方法(推荐)
			//city.innerHTML="";
			
			//用while循环来删除所有
			//只要有儿子,就依次干掉儿子
			while (city.hasChildNodes()){
				city.removeChild(city.firstChild);
			}
		</script>
	</body>
</html>

 

文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的。 使用 JavaScript 实现图的增删改查,可以使用以下方法: 节点: - 可以使用图的 addVertex(value) 方法向图添加一个新节点,其 value 是新节点加边: - 可以使用图的 addEdge(vertex1, vertex2) 方法向图添加一条边,其 vertex1 和 vertex2 是节点节点: - 可以使用图的 removeVertex(value) 方法从图节点,其 value 是节点除边: - 可以使用图的 removeEdge(vertex1, vertex2) 方法从图除边,其 vertex1 和 vertex2 是节点节点: - 可以使用图的 findVertex(value) 方法节点,其 value 是节点找边: - 可以使用图的 findEdge(vertex1, vertex2) 方法找边,其 vertex1 和 vertex2 是节点。 希望这些信息能帮助到你。 ### 回答2: 使用JavaScript可以很容易地实现图的增删改查功能。在这里,我们可以采用图的邻接矩阵表示法来实现。 首先,我们需要创建一个二维数组来表示图的邻接矩阵。数组的长度为图的顶点数,可以初始化为0,表示没有边连接。当有边连接时,我们将数组对应位置的元素设为1。 接下来,我们可以实现图的加边的功能。通过将两个顶点的对应位置设为1,我们可以在图添加一条边。 图的除边功能可以通过将两个顶点的对应位置设为0来实现。这样,我们可以在图除一条边。 要询图是否存在某条边,我们只需要检对应位置是否为1。如果是,那么表示图存在这条边。 图的修改功能可以看作是除边和加边的结合,即先除原有的边,然后添加新的边。 总结起来,使用JavaScript实现图的增删改查步骤如下: 1. 创建一个二维数组,表示图的邻接矩阵。 2. 实现添加边功能,将对应位置设为1。 3. 实现除边功能,将对应位置设为0。 4. 实现询边功能,检对应位置是否为1。 5. 实现修改边功能,先除原有边,然后添加新的边。 通过以上步骤,我们可以很方便地使用JavaScript实现图的增删改查功能。 ### 回答3: 使用JavaScript实现图的增删改查可以通过创建一个图的对象来实现。首先,我们需要定义一个图的类,该类包含添加节点和边、节点和边、修改节点和边以及节点和边的方法。 1. 添加节点和边: - 添加节点:在图的对象定义一个`addNode`方法,将节点添加到图的节点集合。 - 添加边:在图的对象定义一个`addEdge`方法,将边添加到图的边集合,同时更新相关节点的邻接信息。 2. 节点和边: - 节点:在图的对象定义一个`removeNode`方法,首先除该节点的相关边,然后将该节点节点集合除。 - 除边:在图的对象定义一个`removeEdge`方法,将该边从边集合除,同时更新相关节点的邻接信息。 3. 修改节点和边: - 修改节点:在图的对象定义一个`updateNode`方法,找到该节点并更新节点属性。 - 修改边:在图的对象定义一个`updateEdge`方法,找到该边并更新边的属性。 4. 节点和边: - 节点:在图的对象定义一个`findNode`方法,根据节点的唯一标识符节点。 - 找边:在图的对象定义一个`findEdge`方法,根据边的唯一标识符找边。 使用以上方法,可以方便地实现图的增删改查操作。在实际应用,可以根据具体需求对图的对象进行扩展,例如节点属性、边属性以及其他图算法等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值