javascript实现可全选、反选及删除表格的方法
本文实例讲述了javascript实现可全选、反选及删除表格的方法。分享给大家供大家参考。具体实现方法如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>可以全选反选删除的表格</title>
<styletype="text/css">
body,table
{
margin:0;
padding:0;
font-size:14px;
}
table,tr,th,td
{
border:1pxsolid#cdc;
}
th
{
background-color:green;
width:100px;
}
.oddColor
{
background-color:#ccc;
}
.evenColor
{
background-color:#fcf;
}
.overColor
{
background-color:#dff;
}
</style>
<scripttype="text/javascript">
//定义嵌套数组
vardatas=[["张三",30,"南昌"],["李四",25,"北京"],["王五",20,"郑州"],
["赵六",19,"武汉"],["李莫",18,"深圳"],["罗成",33,"重庆"],
["王平",31,"天津"],["刘萍",22,"上海"],["杨丽",17,"石家庄"],
["郭丽",30,"广州"]];
//动态创建表格
functionCreateMyTable(){
vartblMain=document.getElementById("tblMain");
varrowsCount=tblMain.rows.length;
varaddRow;
varaddCol;
vardetailInfos;
for(vari=0;i<datas.length;i++){
addRow=tblMain.insertRow(rowsCount-1);//控制数据行添加到倒数第二列
addCol=addRow.insertCell(-1);
addCol.innerHTML="<inputtype='checkbox'name='item'/>";
addCol.align="center";//控制列居中
detailInfos=datas[i];
for(varj=0;j<detailInfos.length;j++){
addCol=addRow.insertCell(-1);
addCol.innerHTML=detailInfos[j];
}
addCol=addRow.insertCell(-1);
addCol.innerHTML="<inputtype='button'id='btnDel"+i+"'value='删除'onclick='btnDel(this)'/>";
addCol.align="center";//控制列居中
rowsCount++;
}
TableColor();
}
//设置网格间隔色和高亮显示
varoldClassName;//记住行的背景色
functionTableColor(){
vartblMain=document.getElementById("tblMain");
varrowNodes=tblMain.rows;
for(vari=1;i<rowNodes.length-1;i++){//除去首行和末行
if(i%2==0){
rowNodes[i].className="evenColor";
}
else{
rowNodes[i].className="oddColor";
}
rowNodes[i].onmouseover=function(){
oldClassName=this.className;
this.className="overColor";
}
rowNodes[i].onmouseout=function(){
this.className=oldClassName;
}
}
}
//复选框全选函数
functioncheckAll(){
varcurrentCheckNode=event.srcElement;
varcheckAllNodes=document.getElementsByName("all");
//把没有点击的全选复选框去除复选
for(vari=0;i<checkAllNodes.length;i++){
if(currentCheckNode!=checkAllNodes[i]){
checkAllNodes[i].checked=false;
}
}
varcheckItemNodes=document.getElementsByName("item");
for(vari=0;i<checkItemNodes.length;i++){
checkItemNodes[i].checked=currentCheckNode.checked;
}
}
//按钮选择函数
functionbtnCheckboxSel(index){
varcheckItemNodes=document.getElementsByName("item");
for(vari=0;i<checkItemNodes.length;i++){
if(index==2){
checkItemNodes[i].checked=!checkItemNodes[i].checked;
}
else{
checkItemNodes[i].checked=index;
}
}
}
//每行的删除按钮函数
functionbtnDel(btn){
vartblMain=document.getElementById("tblMain");
vardelRowNode=btn.parentNode.parentNode;
varsMsg="您是否要删除姓名为:【"+delRowNode.cells[1].innerText+"】,年龄为:【"+
delRowNode.cells[2].innerText+"】,城市为:【"+
delRowNode.cells[3].innerText+"】的数据?";
if(window.confirm(sMsg)){
tblMain.tBodies[0].removeChild(delRowNode);
TableColor();
}
}
//删除所选项按钮函数
functionbtnDelSelectRow(){
vararrDel=newArray();
varpos=0;
varitemNodes=document.getElementsByName("item");
for(vari=0;i<itemNodes.length;i++){
if(itemNodes[i].checked){
arrDel[pos]=itemNodes[i].parentNode.parentNode;
pos++;
}
}
if(pos<=0){
return;
}
if(!window.confirm("是否要删除选择的数据?"))
return;
vartblMain=document.getElementById("tblMain");
for(vari=0;i<arrDel.length;i++){
tblMain.tBodies[0].removeChild(arrDel[i]);
}
}
window.onload=CreateMyTable;
</script>
</head>
<body>
<tableid="tblMain"cellspacing="0"cellpadding="10px"align="center">
<tbody>
<tr>
<th><inputtype="checkbox"name="all"onclick="checkAll()"/>全选</th>
<th>姓名</th>
<th>年龄</th>
<th>城市</th>
<th>操作</th>
</tr>
<tr>
<th><inputtype="checkbox"name="all"onclick="checkAll()"/>全选</th>
<thcolspan="4">
<inputtype="button"value="全选"onclick="btnCheckboxSel(1)"/>
<inputtype="button"value="全清"onclick="btnCheckboxSel(0)"/>
<inputtype="button"value="反选"onclick="btnCheckboxSel(2)"/>
<inputtype="button"value="删除所选项"onclick="btnDelSelectRow()"/>
</th>
</tr>
</tbody>
</table>
</body>
</html>
希望本文所述对大家的javascript程序设计有所帮助。