1. 程式人生 > 其它 >javascript簡單案例-動態表格

javascript簡單案例-動態表格

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>動態表格</title>
		<style>
			table{
				border: 1px solid;
				margin:0 auto; 
				width: 500px;
				
			}
			td,th{
				text-align: center;
				border: 1px solid;
			}
			div{
				text-align: center;
				margin: 50px;
			}
			.out{
				background-color: white;
			}
			.over{
				background-color: pink;
			}
		</style>
	</head>
	<body>
	<div>
		<input type="text" id = "id" placeholder="請輸入編號" />
		<input type="text" id="name"  placeholder="請輸入姓名">
		<input type="text" id="gender"  placeholder="請輸入性別">
	    <input type="button" value="新增" id="btn_add">
	</div>
	<table>
		<caption>學生資訊表</caption>
		<tr>
			<th><input type = "checkbox" name = "cb" id="fir" ></th>
			<th>編號</th>
			<th>姓名</th>
			<th>性別</th>
	        <th>操作</th>
		</tr>
		<tr>
			<td><input type = "checkbox" name = "cb"></td>
			<td>1</td>
			<td>馬克</td>
			<td>男</td>
			<td><a href = "javascript:void(0);" onclick="delTr(this);">刪除</a></td>
		<!-- 這裡的方法中的this表示刪除該行 ,this在寫方法時引數為obj-->
		</tr>
		<tr>
			<td><input type = "checkbox" name = "cb"></td>
			<td>2</td>
			<td>風清揚</td>
			<td>男</td>
			<td><a href = "javascript:void(0);" onclick="delTr(this);">刪除</a></td>
		</tr>
		<tr>
			<td><input type = "checkbox" name = "cb"></td>
			<td>3</td>
			<td>童麗</td>
			<td>女</td>
			<td><a href = "javascript:void(0);" onclick="delTr(this);">刪除</a></td>
		</tr>
	</table>
	<div>
	<input type="button" value="全選" id = "select_all"/>
	<input type="button" value="反選" id = "select_back" />
	</div>
	<script>
		/* //新增方法一:正常
		document.getElementById("btn_add").onclick = function(){
			//獲取文字框內容
			var id = document.getElementById("id").value;
			var name = document.getElementById("name").value;
			var gender = document.getElementById("gender").value;
					
			var td_id = document.createElement("td");
			//獲取的內容 需要使用textnode來放
			var text_id = document.createTextNode(id);
			td_id.appendChild(text_id);
			var td_name = document.createElement("td");
			var text_name = document.createTextNode(name);
			td_name.appendChild(text_name);
	        //gender 的 td
			var td_gender = document.createElement("td");
	        var text_gender = document.createTextNode(gender);
	        td_gender.appendChild(text_gender);
			
			var td_a = document.createElement("td");
			var ele_a = document.createElement("a");
			ele_a.setAttribute("href","javascript:void(0);");
			ele_a.setAttribute("onclick","delTr(this);");
			
			var text_a = document.createTextNode("刪除");
			ele_a.appendChild(text_a);
			td_a.appendChild(ele_a);
			
			var tr = document.createElement("tr");
			tr.appendChild(td_id);
			tr.appendChild(td_name);
	        tr.appendChild(td_gender);
			tr.appendChild(td_a);
			
			var table = document.getElementsByTagName("table")[0];
			table.appendChild(tr);
		} */
		//在頁面載入後開始執行
		window.onload = function(){
			//全選
			document.getElementById("select_all").onclick = function(){
				var s = document.getElementsByName("cb");
				for(var i = 0;i<s.length;i++){
					s[i].checked = true;
					//複選框的屬性checked表示是否選中
				}
			}
			//反選
			document.getElementById("select_back").onclick = function(){
				var s = document.getElementsByName("cb");
				for(var i = 0;i<s.length;i++){
					if(s[i].checked){
						s[i].checked = false;
					}
					else{
						s[i].checked = true;
					}
					//複選框的屬性checked表示是否選中
				}
			}
			//首框全選
			var s = document.getElementById("fir")
			s.onclick = function(){
				// if(s.checked){
				// 	var m = document.getElementsByName("cb");
				// 	for(var i = 1;i<m.length;i++){
				// 		m[i].checked = true;
				// 	}
				// }
				var m = document.getElementsByName("cb");
				for(var i = 0;i<m.length;i++){
					m[i].checked = s.checked;
				}
			}
			//選中該背景色
			var trs = document.getElementsByTagName("tr");
			for(var i = 0;i<trs.length;i++){
				trs[i].onmouseover = function(){
					this.className = "over";
				}
				trs[i].onmouseout = function(){
					this.className = "out";
				}
			}
			
			//innerhtml方法新增
			document.getElementById("btn_add").onclick = function(){
				//獲取文字框內容
				var id = document.getElementById("id").value;
				var name = document.getElementById("name").value;
				var gender = document.getElementById("gender").value;
				var table = document.getElementsByTagName("table")[0];
				table.innerHTML += "<tr>\n"+
				"<td><input type = 'checkbox' name = 'cb'></td>"+
				"<td>"+id+"</td>"+
				"<td>"+name+"</td>\n"+
				"<td>"+gender+"</td>\n"+
				"<td><a href = \"javascript:void(0);\" onclick=\"delTr(this);\">刪除</a></td>\n"+
			"</tr>";
			}
			//刪除
			function delTr(obj){
				var table = obj.parentNode.parentNode.parentNode;
				var tr = obj.parentNode.parentNode;
			// 用parentNode屬性獲取父節點
				table.removeChild(tr);
			}
		}
	</script>
	</body>
</html>