成品:
第一版
一、
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#top{
text-align: center;
}
#low{
text-align: center;
padding-left: 450px;
}
td{
border: 1px solid;
text-align: center;
width: 150px;
}
#table{
border: 1px solid;
text-align: center;
}
th{
border: 1px solid;
width: 150px;
}
p{
text-align: center;
}
</style>
</head>
<body>
<!--制作表初始样式-->
<div>
<div id="top">
<input type="text" placeholder="请输入编号" id="id" class="input">
<input type="text" placeholder="请输入姓名" id="name" class="input">
<input type="text" placeholder="请输入性别" id="gender" class="input">
<input type="button" value="添加" id="bnt">
</div>
<br>
<br>
<br>
<p>学生信息</p>
<div id="low">
<table id="table">
<tr>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>操作</th>
</tr>
<tr>
<td>1</td>
<td>令狐冲</td>
<td>男</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
<tr>
<td>2</td>
<td>任我行</td>
<td>男</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
<tr>
<td>3</td>
<td>岳不群</td>
<td>?</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
</table>
</div>
</div>
<!--使表变成动态-->
<script>
//实现动态添加功能
document.getElementById("bnt").onclick = function () {
//获取输入框输入的数据
var id = document.getElementById("id").value;
var name = document.getElementById("name").value;
var gender = document.getElementById("gender").value;
//创建td对象
var td_id = document.createElement("td");
var td_name = document.createElement("td");
var td_gender = document.createElement("td");
var td_a = document.createElement("td");
//创建超链接对象(删除)
var ele_a = document.createElement("a");
//javascrip:void(0)让链接调用本页面而不刷新
ele_a.setAttribute("href" , "javascript:void(0)");
ele_a.setAttribute("onclick" , "delTr(this)");
//将输入框的数据转为TextNode对象才可以添加进td成子节点
var textid = document.createTextNode(id);
td_id.appendChild(textid);
var textname = document.createTextNode(name);
td_name.appendChild(textname);
var textgender = document.createTextNode(gender);
td_gender.appendChild(textgender);
var textdel = document.createTextNode("删除");
ele_a.appendChild(textdel);
td_a.appendChild(ele_a);
//创建tr对象,将td加入tr成子节点
var tr = document.createElement("tr");
tr.appendChild(td_id);
tr.appendChild(td_name);
tr.appendChild(td_gender);
tr.appendChild(td_a);
//将tr加入表中
var table = document.getElementsByTagName("table")[0];
table.appendChild(tr);
}
//删除链接调用的方法
function delTr(obj) {//obj为a
//a父节点的父节点的父节点即表
var table = obj.parentNode.parentNode.parentNode;
var tr = obj.parentNode.parentNode;
table.removeChild(tr);
}
</script>
</body>
</html>
二、innerHTML优化代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#top{
text-align: center;
}
#low{
text-align: center;
padding-left: 450px;
}
td{
border: 1px solid;
text-align: center;
width: 150px;
}
#table{
border: 1px solid;
text-align: center;
}
th{
border: 1px solid;
width: 150px;
}
p{
text-align: center;
}
</style>
</head>
<body>
<!--制作表初始样式-->
<div>
<div id="top">
<input type="text" placeholder="请输入编号" id="id" class="input">
<input type="text" placeholder="请输入姓名" id="name" class="input">
<input type="text" placeholder="请输入性别" id="gender" class="input">
<input type="button" value="添加" id="bnt">
</div>
<br>
<br>
<br>
<p>学生信息</p>
<div id="low">
<table id="table">
<tr>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>操作</th>
</tr>
<tr>
<td>1</td>
<td>令狐冲</td>
<td>男</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
<tr>
<td>2</td>
<td>任我行</td>
<td>男</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
<tr>
<td>3</td>
<td>岳不群</td>
<td>?</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
</table>
</div>
</div>
<!--使表变成动态-->
<script>
//实现动态添加功能
document.getElementById("bnt").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>"+id+"</td>\n" +
" <td>"+name+"</td>\n" +
" <td>"+gender+"</td>\n" +
" <td><a href=\"javascript:void(0)\" οnclick=\"delTr(this)\">删除</a></td>\n" +
" </tr>"
}
//删除链接调用的方法
function delTr(obj) {//obj为a
//a父节点的父节点的父节点即表
var table = obj.parentNode.parentNode.parentNode;
var tr = obj.parentNode.parentNode;
table.removeChild(tr);
}
</script>
</body>
</html>
第二版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#top{
text-align: center;
}
#low{
text-align: center;
padding-left: 365px;
}
td{
border: 1px solid;
text-align: center;
width: 150px;
}
#table{
border: 1px solid;
text-align: center;
}
th{
border: 1px solid;
width: 150px;
}
p{
text-align: center;
}
div{
text-align: center;
}
.out{
background: white;
}
.over{
background: pink;
}
</style>
</head>
<body>
<!--制作表初始样式-->
<div>
<div id="top">
<input type="text" placeholder="请输入编号" id="id" class="input">
<input type="text" placeholder="请输入姓名" id="name" class="input">
<input type="text" placeholder="请输入性别" id="gender" class="input">
<input type="button" value="添加" id="bnt">
</div>
<br>
<br>
<br>
<p>学生信息</p>
<div id="low">
<table id="table">
<tr>
<td><input type="checkbox" name="cd" id="firstCd"></td>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>操作</th>
</tr>
<tr>
<td><input type="checkbox" name="cd"></td>
<td>1</td>
<td>令狐冲</td>
<td>男</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
<tr>
<td><input type="checkbox" name="cd"></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="cd"></td>
<td>3</td>
<td>岳不群</td>
<td>?</td>
<td><a href="javascript:void(0)" onclick="delTr(this)">删除</a></td>
</tr>
</table>
</div>
</div>
<!--使表变成动态-->
<script>
//实现动态添加功能
document.getElementById("bnt").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>"+id+"</td>\n" +
" <td>"+name+"</td>\n" +
" <td>"+gender+"</td>\n" +
" <td><a href=\"javascript:void(0)\" οnclick=\"delTr(this)\">删除</a></td>\n" +
" </tr>"
}
//删除链接调用的方法
function delTr(obj) {//obj为a
//a父节点的父节点的父节点即表
var table = obj.parentNode.parentNode.parentNode;
var tr = obj.parentNode.parentNode;
table.removeChild(tr);
}
</script>
<!--新增部分功能-->
<!-------------------------------------------------------------------------------------------->
<div>
<input type="button" value="全选" id="selectAll">
<input type="button" value="全不选" id="unSelect">
<input type="button" value="反选" id="selectRev">
</div>
<script>
window.onload = function () {
document.getElementById("selectAll").onclick = function () {
var cds = document.getElementsByName("cd");
for(var i = 0 ; i < cds.length ; i++){
cds[i].checked = true;
}
}
document.getElementById("unSelect").onclick = function () {
var cds = document.getElementsByName("cd");
for(var i = 0 ; i < cds.length ; i++){
cds[i].checked = false;
}
}
document.getElementById("firstCd").onclick= function () {
var cds = document.getElementsByName("cd");
for(var i = 0 ; i < cds.length ; i++){
cds[i].checked = this.checked;
}
}
document.getElementById("selectRev").onclick = function () {
var cds = document.getElementsByName("cd");
for(var i = 0 ; i < cds.length ; i++){
if(cds[i].checked){
cds[i].checked = false;
}else{
cds[i].checked = true;
}
}
}
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";
}
}
}
</script>
</body>
</html>