JavaScript DOM

本文详细介绍了HTML DOM(文档对象模型)的基本概念,包括增删改查等核心操作。讲解了如何使用getElementById, appendChild, removeChild等方法进行节点的查找、增加、删除,以及innerHTML, parentNode等属性的应用。并通过实例演示了动态添加节点、省市联动效果和商品选择功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DOM:管理我们的文档  增删改查规则 

【HTML中的DOM操作】

一些常用的HTML DOM方法:

getElementById(id) - 获取带有指定id的节点(元素)

appendChild(node) - 插入新的子节点(元素)

removeChild(node) - 删除子节点(元素)

一些常用的HTML DOM属性;

innerHTML - 节点(元素)的文本值

parentNode - 节点(元素)的父节点

childNodes - 节点(元素)的子节点

attributes - 节点(元素)的属性节点

查找节点:

getElementById()返回带有指定ID的元素

getElementsByTagName()返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。

getElementsByClassName()返回包含带有指定类名的所有元素的节点列表

增加节点:

createAttribute()创建属性节点

createElement()创建元素节点

createTextNode()创建文本节点

insertBefore()在指定的子节点前面插入新的子节点

appendChild()把新的子节点添加到指定节点

删除节点:

removeChild()删除子节点

replaceChild()替换子节点

修改节点:

setAttribute() 修改属性

setAttributeNode()修改属性节点

DOM操作:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			function dianwo(){
				var div = document.getElementById("div1"); 
				//创建元素节点
				var p = document.createElement("p");//<p></p>
				//创建文本节点
				var textNode= document.createTextNode("文本内容");//文本内容
				//将p和文本内容关联起来
				p.appendChild(textNode);//<p>文本</p>
				//将P添加到目标div中
				div.appendChild(p);
			}
		</script>
	</head>
	<body>
		<input type="button" value="点我,添加P" onclick="dianwo()"/>
		<!--一会动态的往这个div中添加节点-->
		<div id="div1">
			
		</div>
	</body>
</html>

省市联动:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			var provinces = [
			["深圳市","东莞市","惠州市","广州市"],
			["长沙市","岳阳市","株洲市","湘潭市"],
			["厦门市","福州市","漳州市","泉州市"]
		];
		
		function selectProvince(){
			var province = document.getElementById("province");
			//得到当前选中的是哪个省份
			//alert(province.value);
			var value = province.value;
			//从数组中取出对应的城市信息
			var cities=provinces[value];
			
			var citySelect=document.getElementById("city");
			//清空select中的option
			citySelect.options.length=0;
			for(var i=0;i<cities.length;i++)
			{
				//alert(cities[i]);
				var cityText=cities[i];
				//动态创建城市元素节点 <option>东莞市</option>
				//创建option节点
				var option1=document.createElement("option");//<option></option>
				//创建城市文本节点
				var textNode=document.createTextNode(cityText);//东莞市
				
				//将option节点和文本内容关联起来
				option1.appendChild(textNode);//<option>东莞市</option>
				
				//添加到城市select中
				citySelect.appendChild(option1);
			}
		}
		</script>
	 </head>
	<body>
		<!--
			选择省份
		-->
		<select onchange="selectProvince()" id="province">
			<option value="-1">--请选择--</option>
			<option value="0">广东省</option>
			<option value="1">湖南省</option>
			<option value="2">福建省</option>
			
		</select>
		<!--选择城市-->
		<select id="city"></select>
	</body>
</html>

商品的左右选择:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			function selectOne(){
				//1.获取左边Select中被选中的元素
				var leftSelect=document.getElementById("leftSelect");
				var options=leftSelect.options;
				
				var rightSelect = document.getElementById("rightSelect");
				//遍历找出被选中的option
				for(var i=0;i<options.length;i++){
					var option1=options[i];
					if(option1.selected)
					{
						//2.将选中的元素添加到右边的Select中就可以
						rightSelect.appendChild(option1);
					}
				}
			}
			
			function selectAll(){
				//1.获取左边Select中被选中的元素
				var leftSelect=document.getElementById("leftSelect");
				var options=leftSelect.options;
				
				var rightSelect = document.getElementById("rightSelect");
				//遍历找出被选中的option
				for(var i=options.length-1;i>=0;i--){
					var option1=options[i];											
					rightSelect.appendChild(option1);
					
				}
			}
			
		</script>
	</head>
	<body>
		<table border="1px" width="400px">
			<tr>
				<td>分类名称</td>
				<td><input type="text" value="手机数码"/></td>
			</tr>
			<tr>
				<td>分类描述</td>
				<td><input type="text" value="这里面都是手机数码"/></td>
			</tr>
			<tr>
				<td>分类商品</td>
				<td>  
					<!--左边-->
					<div style="float: left;">
						已有商品<br />
						<select multiple="multiple" id="leftSelect" ondblclick="selectOne()">
							<option>华为</option>
							<option>小米</option>
							<option>锤子</option>
							<option>oppo</option>
						</select>
						<br />
						<a href="#" onclick="selectOne()"> &gt;&gt; </a><br />
						<a href="#" onclick="selectAll()"> &gt;&gt;&gt; </a>
					</div>
					
					<!--右边-->
					<div style="float: right;">
						已有商品<br />
						<select multiple="multiple" id="rightSelect">
							<option>苹果6</option>
							<option>苹果7</option>
							<option>诺基亚</option>
							<option>波导</option>
						</select>
						<br />
						<a href="#"> &lt;&lt; </a><br />
						<a href="#"> &lt;&lt;&lt; </a>
					</div>
				</td>
			</tr>
			<tr>
				<td colspan="2">
					<input type="submit" value="提交" />
				</td>
				
			</tr>
			
		</table>
	</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值