DOM访问html元素(通过id访问或通过节点关系访问)和对html元素进行增删改查

本文介绍了两种访问HTML元素的方法:通过ID和通过节点关系,并详细讲解了DOM对元素的增删改查操作,包括创建、复制、添加和删除节点的实践示例。
摘要由CSDN通过智能技术生成

目录

访问html元素的两种方法

根据id访问

列:练习根据id访问

列:获取body下所有节点的名称

通过节点关系访问html元素

常用属性和方法

列:练习通过节点关系访问html元素(重点)

DOM对html元素进行增删改查

创建节点

复制节点

添加、删除节点



访问html元素的两种方法

根据id访问

var mya=document.getElementById('mya');

列:练习根据id访问

		<script type="text/javascript">
			function show() {
				var mydiv, mytextarea, mytext, btn;
				with(document) {
					mydiv = getElementById("mydiv");
					mytextarea = getElementById("mytextarea");
					mytext = getElementById("mytext");
					btn = getElementById('btn');
					write(mydiv.innerHTML + "\n" + mytextarea.value + "\n" + mytext.value)
				}

			}
		</script>
	</head>
	<body>
		<div id='mydiv'>我的div</div>
		<textarea id="mytextarea" rows="2" cols="20">我是textarea</textarea>
		<input type="text" id="mytext" value="laowang" />
		<input type="button" id="btn" value="点我" onclick="show()" />
	</body>

结果:

点击前:

点击后:

列:获取body下所有节点的名称

		<script>
			window.onload = function() {

				document.getElementById('btn').onclick = function myFunction() {
					var txt = "";
					var c = document.body.childNodes;
					for (i = 0; i < c.length; i++) {
						txt = txt + c[i].nodeName + "<br>";
					};
					var x = document.getElementById("demo");
					x.innerHTML = txt;
				}
			 }
		</script>
	</head>
	<body>
		<p id="demo">请点击按钮来获得 body 元素子节点的节点名。</p>
		<input type="button" id="btn" value="试一下" />
	</body>

结果:

通过节点关系访问html元素

常用属性和方法

  • parentNode 返回父节点
  • previousSibiling  返回当前节点的前一个兄弟节点
  • nextSibiling 返回当前节点的后一个兄弟节点
  • firstChild 返回当前节点的第一个子节点
  • lastChild 返回当前节点的最后一个子节点
  • getElementsByTag  返回当前节点具有标签名的所有子节点
  • nodeType 属性返回以数字值返回指定节点的节点类型。返回(元素节点是1  属性节点是2 文本节点是3)
  • nodeName 属性指定节点的节点名称。

列:练习通过节点关系访问html元素(重点)

		<script type="text/javascript">
			window.onload = function() {
				var myul = document.getElementById('myul');
				var div = document.getElementById('box');
				var btn1 = document.getElementById('btn1');
				var btn2 = document.getElementById('btn2');
				var btn3 = document.getElementById('btn3');
				//获取前一个兄弟子节点的名称
				btn1.onclick = function() {

					alert(myul.previousSibling.nodeName); //结果#text
				}

				btn2.onclick = function() {
					alert(" div:" + div + " 节点名称" + div.nodeName + " 节点类型" + div.nodeType + " 节点值:" + div.nodeValue);
					// 结果: div:[object HTMLDivElement]   节点名称DIV   节点类型1   节点值:nul
				}
				//div下所有的子节点
				btn3.onclick = function() {
					var allChilds = div.childNodes; //div下所有的子节点
					alert(allChilds.length) //结果 2
					for (i = 0; i < allChilds.length; i++) {
						if (allChilds[i].nodeType == 1) {
							alert( allChilds[i].nodeName) //结果:SPAN
						} else if (allChilds[i].nodeType == 3) {
							alert( allChilds[i].nodeValue); //节点的值 结果:mybox
						} else if (allChilds[i].nodeType == 2) {
							alert(allChilds[i].nodeName);
						}
					}
				}
			}
		</script>
	</head>
	<body>
		<div id="box">mybox<span>span1</span></div>
		<ul id="myul">
			<li>aaaa</li>
			<li>bbbb</li>
			<li>cccc</li>
			<li>dddd</li>
			<li>eeee</li>
		</ul>
		<input type="button" value="获取前一个兄弟子节点的名称" id='btn1' />
		<input type="button" value="2" id='btn2' />
		<input type="button" value="获取div下所有子节点" id='btn3' />
	</body>

结果:

DOM对html元素进行增删改查

创建节点

document.createElement(Tag);//tag是合法的html元素

复制节点

        复制节点 cloneNode(boolean deep ),当deep为true时,复制当前节点以及当前节点的后代节点

为false时,只复制当前节点。

添加、删除节点

  • appendChilde(newNode) 键newNode添加到当前节点的最后一个子节点
  • insertBefore(newNode,refNode) 在refNode节点前添加newNode节点
  • replaceChild(newNode,oldNode) 将oldNode节点替换成Child节点
  • removeChild(oldNode)  移出节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值