HTML元素通过DOM方式访问

访问HTML元素方式(3种)

  1. 根据ID访问HTML元素
  2. 根据CSS选择器访问HTML元素
  3. 利用节点关系访问HTML元素

根据ID访问HTML元素

//格式
document.getElementById("元素ID")
<body>
<div id="id1">元素一</div>
<textarea id="id2">元素二</textarea>

//访问元素一DIV中的内容
alert(document.getElementById("id1").innerHTMl);
//访问元素二textarea中的内容
alert(document.getElementById("id2").value);
//通过按钮访问元素内容
<input type="button" value="访问元素内容" onclick="accessById()";
<script>
var accessById=function(){
	alert(document.getElementById("id2").value);
}
</script>
</body>

访问表单控件

<body>
//定义from表单ID名称为d
	<form id='d' action="" method="get">
		//input 按钮下标为0
		<input name='user' type='text' />
		//input name为color
		<input name='pass' type="text" />
			//下拉列表框color
			<select name='color'>
				<option value='red'>红色</option>
				<option value='blue'>蓝色</option>
			</select>
			//通过elements属性,d为组件数组,第一个组件下标为0
			<input type='button' value="第一个" onclick="alert(document.getElementById('d').elements[0].value);" />
			//通过elements属性,d为组件数组,指定name='pass'
			<input type='button' value="第二个" onclick="alert(document.getElementById('d').elements['pass'].value);" />
			//指定name='color'组件的值
			<input type='button' value="第三个" onclick="alert(document.getElementById('d').color.value);" />
	</form>
	//elements.length输出组件数组d中组件全部个数。
<script>
	alert(document.getElementById('d').elements.length);
</script>
</body>

访问列表框组件

组件名.length:返回下拉列表框菜单个数
组件名.options[下标-1]:组件数组指定下标菜单
组件名.selectedIndex:返回下拉列表选中的菜单项索引,如果多选则显示第一个选中菜单的索引下标
组件名.selected:返回该项是否被选中


动态修改元素

1. innerHTML呈现div,td等内容
2. value呈现input,textarea等内容
3. style修改样式
4. options[index]修改指定index值,其中index从0开始
<body>
		改变第<input id='row' type='text' size="2" />行,
		第<input id='cel' type='text' size="2" />列的
		值为:<input id='celVal' type="text" size="16" /><br >
		
		<input type="button" id="chg" value="改变" onclick="change();"/>
		<table id='d' border='1' style='width:580;broder-collapse:collapse;'>
			<tr>
				<td>java讲义</td>
				<td>JAVA实战</td>
			</tr>
			<tr>
				<td>java讲义</td>
				<td>JAVA实战</td>
			</tr>
			<tr>
				<td>java讲义</td>
				<td>JAVA实战</td>
			</tr>
		</table>
		<script type="text/javascript">
			var change=function(){
				//获取表格名称
				var tb=document.getElementById('d');
				//获取行下标
				var row=document.getElementById("row").value;
				//转化为int类型
				row=parseInt(row);
				//isNaN判断row是否为整数
				if(isNaN(row)){
					alert('您要修改的行必须是整数!');
					return false;
				}
				//获取列下标
				var cel=document.getElementById("cel").value;
				cel=parseInt(cel);
				if(isNaN(cel)){
					alert("您要修改的列必须是整数!");
					return  false;
				}
				//输入row小于d组件中rows数值,cel小于当前输入row中的cells总行数
				if(row>tb.rows.length||cel>tb.rows.item(0).cells.length){
					alert("修改的值不在括号内");
					return false;
				}
				//将input框中值赋给表格
				tb.rows.item(row-1).cells.item(cel-1).innerHTML=document.getElementById("celVal").value;
			}
		</script>
	</body>

动态添加组件

列表框、下拉菜单动态添加

//body的ID为test
<body id='test'>
<script>
//创建select节点标签
	var a=document.createElement("select");
			for(var i=0;i<10;i++){
			//创建option节点标签
				var op=document.createElement("option");
				op.innerHTML="新增的选项"+i;
				//null表示在列表内容从0开始顺序存入
				//1表示列表第一个内容顺序存入其他逆序存入
				a.add(op,null);
			}
			设置select字体
				a.size=5;
				//在test节点末尾位置添加a节点
		document.getElementById("test").appendChild(a);
</script>
</body>

单元表格的添加

//给body定义ID为test
<body id='test'>
<script>
	//创建table标签给a
	var a=document.createElement("table");
	//设置table标签的样式
	a.style.width="800px";
	//单元格之间没有间隔
	a.style.borderCollapse='collapse';
	a.border=1;
	//为a创建一个标题
	var caption=a.createCaption();
	//标题名称为"表格标题"
	caption.innerHTML="表格标题";
	
	for(var i=0;i<10;i++){
		//添加10行 row
		var tr=a.insertRow(i);
			for(var j=0;j<5;j++){
				//在行中插入单元格insertCell
				var td=tr.insertCell(j);
				td.style.padding="5px";
				td.innerHTML="单元格内容"+i+j;
			}
	}
	//在a的末尾节点后添加内容
	document.getElementById("test").appendChild(a);
</script>
</body>

删除HTML元素

//给body定义id为test
<body id="test">
	//添加input元素,类型为按钮,初始不可用 ,点击执行add事件
	<input id="add" type="button" value="增加" disabled onclick="add();" />
	//添加input元素,类型为按钮,点击执行del事件
	<input id="del" type="button" value="删除"  onclick="del();" />
	//添加div元素,
	<div id="target" style="width:240px; height:50px;border:1px solid black">被控制目标元素</div>
	<script>
		//将id为test的元素赋值给body
		var body=document.getElementById("test");
		//将id为target的元素赋值给target
		var target=document.getElementById("target");
		var add=function(){
			//添加当前节点的最后一个子节点位置
			body.appendChild(target);
			//添加按钮设置为不可用
			document.getElementById("add").disabled="disabled";
			//删除按钮设置为可用
			document.getElementById("del").disabled="";
		}
		var del=function(){
			//删除target的元素
			body.removeChild(target);
			document.getElementById("add").disabled="";
			document.getElementById("del").disabled="disabled";
		}
	</script>
</body>


动态删除列表框

<body>
	//初始化input元素,类型为text
	<input id="opValue" type='text' />
	//初始化input元素,类型为button,点击执行add事件
	<input id="add" type='button' value="增加" onclick="add()" />
	//初始化input元素,类型为button,点击执行del事件
	<input id="del" type="button" value="删除" onclick="del()" />
	//初始化select元素,id为show
	<select id="show" size="8" style="width: 180px;"></select>
<script>
	//获取id为show的元素标签,并赋值给show
	var show=document.getElementById("show");
	//定义add过程
	var add=function(){
		//将id是opValue元素中的value值添加到Option元素中,并将标签赋值给op
		var op=new Option(document.getElementById('opValue').value);
		//将id为opValue的元素标签赋值给opValue
		var opValue=document.getElementById("opValue").value;
		//判断opValue标签所对应的元素长度
		if(opValue.length==0){
			alert("输入值为空")
		}else{
		//在id为show元素中末尾处添加option元素,其值为op标签中的元素值
			show.options[show.options.length]=op;
		}
		
	}
	var del=function(){
		//判断id为show的select元素长度是否为0
		if(show.options.length>0){
		//如果select元素中有option元素则删除
			show.remove(show.options.length-1);
		}
	}
</script>
</body>

删除单元格

<body>
//input元素id为delRow,类型为button,单击执行delRow过程
<input id="delRow" type="button" onclick="delRow()" value="删除最后一行"/>
//input元素id为delCell,类型为button,单击执行delCell过程
<input id="delCell" type="button" onclick="delCell()" value="删除最后一单元格"/>
//input元素id为null,类型为button,单击执行delRow过程
<input id="null" type="button" onclick="delRow()" value="删除空白行" disabled/><br>
//input元素id为Row,类型为text
<input id="Row" type="text" placeholder="输入删除行数">
//input元素File,类型为text
<input id="File" type="text" placeholder="输入删除列数">
//input元素ok,类型为button,单击后执行delOk事件
<input id="ok" type="button" onclick="delOk()" value="删除输入单元格">
//初始化table元素,id为test
<table id="test" border="1" style="width: 500px;">
	<caption>单元格删除测试练习</caption>
	<tr>
		<td>11</td>
		<td>12</td>
	</tr>
	<tr>
		<td>21</td>
		<td>22</td>
	</tr>
	<tr>
		<td>31</td>
		<td>32</td>
	</tr>
	<tr>
		<td>41</td>
		<td>42</td>
	</tr>
</table>
<script>
//获取id为test的元素标签赋值给tab
	var tab=document.getElementById("test");
	//定义delRow过程
	var delRow=function(){
	//判断row是否为空
		if(tab.rows.length>0){
		//不为空则执行删除操作
			tab.deleteRow(tab.rows.length-1);
		//删除空白行按钮默认为不可用
			document.getElementById("null").disabled='disabled';
		}else{
		//如果row为0则代表table中没有row了
			alert("行已经没有行了");
			return false;
		}
	}
	//定义dellCell过程
	var delCell=function(){
	//获取tab标签中rows属性值,赋值给rowList
		var rowList=tab.rows;
		//获取此行中单元格数
		var lastRows=rowList.item(rowList.length-1);
		//判断行和单元格是否为最后一条
		if(lastRows.cells.length==0 && tab.rows.length==1){
			document.getElementById("delRow").disabled='disabled';
			document.getElementById("delCell").disabled='disabled';
			document.getElementById("null").disabled='disabled';
			alert("已经没有行了");
			return false;
			//判断此行是否有单元格
		}else if(lastRows.cells.length>0){
		//删除此行最后一个单元格
			lastRows.deleteCell(lastRows.cells.length-1);
			document.getElementById("null").disabled='disabled';
		}
		else{
			document.getElementById("null").disabled='';
			alert("请点击删除空白行");
			return false;
		}
	}
	//定义删除指定单元格过程delOk
	var delOk=function(){
	//获取输入单元格行数
		var Row=document.getElementById('Row').value;
		//获取单元格列数
		var File=document.getElementById("File").value
		//输入数据转换为整型
		Row=parseInt(Row);
		File=parseInt(File);
		//数据转换整型的过程中,如果数据不为整型则isNaN为真
		if(isNaN(Row)||isNaN(File)){
			alert("输入错误");
			return false;
			//判断输入值是否超过已有值
		}else if(Row>tab.rows.length||File>tab.rows[Row-1].cells.length){
			alert("超出已有表格,请重新输入");
			return false;
		}else{
		//获取table元素中row列的下标,然后deleteCell删除元素,元素下标为File-1
			tab.rows[Row-1].deleteCell(File-1);
		}
	}
</script>
</body>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值