Javascript操作BOM和DOM详解(3)实例:js操作checkbox、select、table

一、JS操作DOM之checkbox

1.图示

2.html代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>复选框</title>
<script type="text/javascript" src="checkbox.js"></script>
</head>
<body>
	请选择你的爱好:<br/>
	<input type="checkbox" id="checkAll"/>全选/全不选
	<div id="hobbycheck">
		<input type="checkbox" name="hobby"/>Java&nbsp;
		<input type="checkbox" name="hobby"/>JS&nbsp;
		<input type="checkbox" name="hobby"/>C&nbsp;
		<input type="checkbox" name="hobby"/>C++&nbsp;
		<input type="checkbox" name="hobby"/>pyth
	</div> 
	<div>
		<input type="button" value="全选" onclick="checkAll(true);"/>&nbsp;
		<input type="button" value="全不选" onclick="checkAll(false);"/>&nbsp;
		<input type="button" value="反选" onclick="checkUnAll();"/>
	</div>
</body>
</html>

3.js代码

/**
 * js DOM操作练习:checkbox
 */
window.onload = function() {
	
	document.getElementById("checkAll").onclick=function(){
	    //this在这里就是表示当前获得的元素对象
		checkAll(this.checked);
	}
}

function checkAll(flag) {
	var El = document.getElementsByName("hobby");
	// for-in其中:e表示数组的索引从0开始,El表示获得的节点数组名
	for (e in El) {
		El[e].checked = flag;
	}
	// console.debug(El);
	document.getElementById("checkAll").checked = flag;

}

function checkUnAll() {
	var El = document.getElementsByName("hobby");
	// for-in其中:e表示数组的索引从0开始,El表示获得的节点数组名
	for (e in El) {	
			El[e].checked = !El[e].checked;
	}	
		document.getElementById("checkAll").checked = false;	
}

二、JS操作DOM之select

1.图示

2.HTML代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>列表移动</title>
<script type="text/javascript" src="select.js"></script>
</head>
<body>
	<table border="1">
		<tr>
			<td>
				<select id="s1" style="width:100px;" size="10" multiple="multiple" >
					<option>选项1</option>
					<option>选项2</option>
					<option>选项3</option>
					<option>选项4</option>
					<option>选项5</option>
					<option>选项6</option>
					<option>选项7</option>
					<option>选项8</option>
					<option>选项9</option>
				</select>
			</td>
			<td align="center">
				<input type="button" value="==>" onclick="moveAll('s1', 's2')"/><br/>
				<input type="button" value="-->" onclick="moveSelected('s1', 's2')"/><br/>
				<input type="button" value="<--" onclick="moveSelected('s2', 's1')"/><br/>
				<input type="button" value="<==" onclick="moveAll('s2', 's1')"/>
			</td>
			<td>
				<select id="s2" style="width:100px;" size="10" multiple="multiple" >
				</select>
			</td>
		</tr>
	</table>
</body>
</html>

3.js代码

/**
 * js DOM操作练习:select
 */
//全部移动
function moveAll(s1, s2) {
	var E1 = document.getElementById(s1);	
	var E2 = document.getElementById(s2);
	//console.debug(E1);
	//console.debug(E2);
    
	//不要用for,数组下标会变动,用while
	while(E1.hasChildNodes()){
		E2.appendChild(E1.firstChild);		
	}	
}


//移动选中
function moveSelected(s1, s2) {
	var E1 = document.getElementById(s1);	
	var E2 = document.getElementById(s2);
    
	//获得s1下的所有option
	var opts=E1.getElementsByTagName("option");
	
	//用for,将数组从后往前取
	for (var i = opts.length-1; i>=0 ; i--) {
		//判断是否选中
		if(opts[i].selected){
			E2.appendChild(opts[i]);
		}
	}
}

三、JS操作DOM之table

1.图示

2.HTML代码 

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新增用户</title>
<script type="text/javascript" src="table.js"></script>
</head>
<body>
	<form>
		<center>
			用户录入<br/>
			用户名:<input id="username" type="text"/>
			邮箱:<input id="email" type="text"/>
			电话:<input id="tel" type="text"/><br/>
			<input id="btn_submit" type="button" value="添加"/>
			<input id="btn_removeAll" type="button" value="删除所有"/><br/>
		</center>
	</form>
	<hr/>
	<table border="1" width="50%" align="center">
	<thead>
			<tr>
				<th>用户名</th>
				<th>邮箱</th>
				<th>电话</th>
				<th>操作</th>
			</tr>
		</thead>
		<tbody id="data">
			<tr>
				<td>王宝强</td>
				<td>[email protected]</td>
				<td>18888888888</td>
				<td><a href="javascript:" onclick="delRow(this);">删除</a></td>
			</tr>
			<tr>
				<td>马蓉</td>
				<td>[email protected]</td>
				<td>19999999999</td>
				<td><a href="javascript:" onclick="delRow(this);">删除</a></td>
			</tr>
		</tbody>
	</table>
</body>
</html>

3.js代码

/**
 * js DOM操作练习:table
 */
//表单操作
console.debug("测试:表单操作");
window.onload=function(){
	
	//获得<tbody>元素
	var data=document.getElementById("data");
	
	//添加按钮点击事件
	document.getElementById("btn_submit").onclick=function(){
		//获得填入的数据
		var username=document.getElementById("username").value;
		var email=document.getElementById("email").value;
		var tel=document.getElementById("tel").value;
		//创建element元素
		var trEl=document.createElement("tr");
		var usernameTd=document.createElement("td");
		var emailTd=document.createElement("td");
		var telTd=document.createElement("td");
		var delTd=document.createElement("td");
		
		//给相应的元素赋值,由页面获得的数据
		usernameTd.innerHTML=username;
		emailTd.innerHTML=email;
		telTd.innerHTML=tel;
		delTd.innerHTML="<a href='javascript:' onclick='delRow(this);'>删除</a>";
		
		//设置节点的层级关系将<td>添加到父节点<tr>中
		trEl.appendChild(usernameTd);
		trEl.appendChild(emailTd);
		trEl.appendChild(telTd);
		trEl.appendChild(delTd);
		
		//设置节点的层级关系,再将<tr>添加到其父节点<tbody>中
		data.appendChild(trEl);
	};
	
	//删除所有按钮点击事件
	document.getElementById("btn_removeAll").onclick=function(){
		//删除所有,就是将<tbody id="data">标签下的html内容清除
		data.innerHTML="";
	};

	
}


//单个删除方法
function delRow(obj){
	//this传进来的是一个<a href="javascript:" onclick="delRow(this);">删除</a> 标签对象,其父节点<td></td>,它的父节点又是<tr></tr>
	//单行删除,是要通过<a>标签找到它的爷爷<tr>并删除
	var El=obj.parentNode.parentNode;
	//删除节点,要用该节点的父节点操作
	El.parentNode.removeChild(El);
	
	
}

Javascript操作BOM和DOM详解(1)

Javascript操作BOM和DOM详解(2)

Javascript操作BOM和DOM详解(3)实例:js操作checkbox、select、table

猜你喜欢

转载自blog.csdn.net/openbox2008/article/details/85319004