排名练习的例子:
向表格添加数据,要求实现如下功能:
参考代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>javascipt dom编程之table对象---www.jb200.com</title>
<link rel="stylesheet" type="text/css" href="">
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script type="text/javascript">
/*插入数据*/
function insert(){
//获得表格对象
var mytable=document.getElementById("table1");
//判断插入是否重复的排名
//遍历
//定义变量要插入的位置
var insertW=mytable.rows.length;
for(var i=1;i<mytable.rows.length;i++){
//取出每一行
var eRows=mytable.rows[i];
//判断输入的排名是否重复
if(eRows.cells[0].innerText==no.value){
window.alert("与排名 "+eRows.cells[0].innerText+" 重复");
return ;//阻止代码往下面执行
}
//进行排序 查找要插入的位置
if(parseInt(no.value)>parseInt(eRows.cells[0].innerText)){
insertW=i;
//window.alert(insertW);
}
}
//排序后的插入
var eachRow=mytable.insertRow(insertW+1);
//每行添加数据
eachRow.insertCell(0).innerText=document.getElementById("no").value;
eachRow.insertCell(1).innerText=username.value;
eachRow.insertCell(2).innerText=nickname.value;
eachRow.insertCell(3).innerHTML="<a href='#' onclick='deleteRow(this)'>删除</a>";
eachRow.insertCell(4).innerHTML="<a href='#' onclick='updateRow(this)'>修改</a>";
}
/*更新数据*/
function updateRow(obj){
//window.alert("ok");
var mytable=document.getElementById("table1");
//找到要修改的行
var index=obj.parentNode.parentNode.sectionRowIndex;
mytable.rows[index].cells[1].innerHTML="<input type='text' id='username'/>";
mytable.rows[index].cells[2].innerHTML="<input type='text' id='nickname'/>";
mytable.rows[index].cells[3].innerText="删除";
mytable.rows[index].cells[4].innerHTML="<a href='#' onclick='save(this)'>保存</a>";
}
/*更新后点击保存*/
function save(obj){
var mytable=document.getElementById("table1");
//找到要修改的行
var index=obj.parentNode.parentNode.sectionRowIndex;
mytable.rows[index].cells[1].innerText=document.getElementById("username").value;
mytable.rows[index].cells[2].innerText=document.getElementById("nickname").value;
mytable.rows[index].cells[3].innerHTML="<a href='#' onclick='deleteRow(this)'>删除</a>";
mytable.rows[index].cells[4].innerHTML="<a href='#' onclick='updateRow(this)'>修改</a>";
}
/*删除数据*/
function deleteRow(obj){
//window.alert("ok");
var mytable=document.getElementById("table1");
//找到当前列
//找到该删除节点的父父节点<tr>并返回一个(TableRow 对象),从而取得该行对应的行号
//window.alert(obj.parentNode.parentNode.sectionRowIndex);
var index=obj.parentNode.parentNode.sectionRowIndex;
var del=window.confirm("确定删除");
if(del){
mytable.deleteRow(index);
window.alert("删除成功");
}
}
</script>
</head>
<body>
<table id="table1" border="1">
<tr><td>排名</td><td>姓名</td><td>外号</td><td>删除</td><td>修改</td></tr>
<tr><td>1</td><td>宋江</td><td>及时雨</td><td><a href="#" onclick='deleteRow(this)'>删除</a></td><td><a href="#"
onclick="updateRow(this)">修改</a></td></tr>
<tr><td>2</td><td>卢俊义</td><td>玉麒麟</td><td><a href="#" onclick='deleteRow(this)'>删除</a></td><td><a href="#"
onclick="updateRow(this)">修改</a></td></tr>
<tr><td>10</td><td>test</td><td>test</td></td><td><a href="#" onclick='deleteRow(this)'>删除</a></td><td><a href="#"
onclick='updateRow(this)'>修改</a></td></tr>
</table>
<br/><br/>
排名:<input id="no" type="text" name="no"><br/>
姓名:<input id="username" type="text" name="username"><br/>
外号:<input id="nickname" type="text" name="nickname"><br/>
<input type="button" value="添加" onclick="insert()"><br/>
</body>
</html>
效果图,如下:

