DOM(二)-10-(示例-删除表格的行和列)
2015-08-20 17:07
330 查看
表格样式table.css代码
@CHARSET "UTF-8"; table{ border:##249bdb 1px solid; width:500px; border-collapse:collapse; } table td{ border:#249bdb 1px solid; padding:5px;/*td左边顶格*/ }主程序代码
<!-- 添加新功能:删除表格的行和列操作 打开DHMTL API文档,找到里面的table对象,其内有方法: (1)deleteRow:从表格及 rows 集合中删除指定行(tr)。 语法:object.deleteRow( [iRowIndex]) 传入角标,删除指定的行 【特别注意】角标是从0开始的,即表格第一行对应角标0,第二行对应1,第三行对应2…… --> <html> <head> <style type="text/css"> @import url(table.css); </style> </head> <body> <script type="text/javascript"> function createTable(){ var oTabNode = document.createElement("table"); //设置表格名称,为了后续删除行和删除列function中先对表格是否存在进行判断 oTabNode.setAttribute("id","tableid");//该方法类似oTabNode.id = "tableid"; var rowVal = parseInt(document.getElementsByName("rownum")[0].value); var colVal = parseInt(document.getElementsByName("colnum")[0].value); for(var x=1;x<=rowVal;x++){ var oTrNode = oTabNode.insertRow(); for(var y=1;y<=colVal;y++){ var oTdNode = oTrNode.insertCell(); oTdNode.innerHTML = x + "--" + y; } } document.getElementsByTagName("div")[0].appendChild(oTabNode); document.getElementsByName("crtBut")[0].disabled = true; } //定义删除行事件处理办法 function delRow(){ //获取表格对象 var oTabNode = document.getElementById("tableid"); //先判断表格是否存在,如果不存在,还删除什么东西 if(oTabNode == null){ alert("表格不存在!"); return; } //获取要删除的表格的行数 var rowVal_del = parseInt(document.getElementsByName("delrow")[0].value); //删除指定的行,这里需要健壮性判断,即判断用户输入的要删除的行是否有效的,即若3行表格,输入的数字是否在1-3之间 if(rowVal_del<=1 && rowVal_del<=oTabNode.rows.length){ /* *oTabNode是当前被操作的表格节点,其有个属性叫做rows,即拿到所有行,然后lenght是一共有几行 */ oTabNode.deleteRow(rowVal_del-1); /* *【切记】这里必须减1,符合用户习惯,因为deleteRow方法传入的角标是从0开始计数的。 *比如rowVal_del=3,那么3-1=2,所以deleteRow(2),那么在实际操作中角标2对应的行是第三行,这样 *就实现了用户传入几就删除第几行。 */ }else{ alert("要删除的行不存在!"); } } //定义删除列事件处理办法:【特别注意思想】删除列,其实就是删除每一行中同一位置的单元格,因为没有直接删除列的方法 function delCol(){ var oTabNode = document.getElementById("tableid"); if(oTabNode == null){ alert("表格不存在!"); return; } //获取用户输入的数字(要删除的列) var colVal_del = parseInt(document.getElementsByName("delcol")[0].value); //删除列操作,既然是删除每行的同一位置的单元格,那么需要先遍历所有行,然后删除同一位置的单元格 //【切记】健壮性判断(理由同上面的删除行function,详情查阅DHTML API文档) if(colVal_del>=1 && colVal_del<=oTabNode.rows[0].cells.length){ //oTabNode是当前被操作的表格节点,rows[0]是拿到第一行,cells是拿到该行的所有单元格,length是该行单元格总数,即oTabNode的列数 for(var x=0;x<oTabNode.rows.length;x++){//遍历所有行 oTabNode.rows[x].deleteCell(colVal_del-1);//拿到第x行,删除该行指定单元格 //调用deleteCell方法删除每行同一位置单元格,【注意】减1 } }else{ alert("要删除的列不存在!"); } } </script> 行数:<input type="text" name="rownum" /> 列数:<input type="text" name="colnum" /> <input type="button" value="创建表格" name="crtBut" onclick="createTable()" /> <hr/> 删除第<input type="text" name="delrow" />行 <input type="button" value="删除行" onclick="delRow()" /><br/> 删除第<input type="text" name="delcol" />列 <input type="button" value="删除列" onclick="delCol()" /> <hr/> <div></div> </body> </html>
相关文章推荐
- How to distribute your own Android library through jCenter and Maven Central from Android Studio
- 吃根香蕉解决三大问题
- jQuery对象与dom对象相互转换jQuery对象与dom对象相互转换
- Windows下mysql密码忘记,如何重置root密码
- 指针知识点总结
- Spring MVC中AOP无效、不起作用,解决方案之一
- JS原型与原型链终极详解
- MongoDB Auto-Sharding(自动分片)入门介绍
- Introduction to Glide, Image Loader Library for Android, recommended by Google
- 滚动条回到最上面
- ActiveMQ BrokeUrl的配置和消息持久化配置
- ios开发 加急审核
- 如何在动态库中使用对话框资源(转) .
- 虚拟化--046 利用web client查看存储
- 只剩1美元用来做marketing,不要花在PR上
- 只剩1美元用来做marketing,不要花在PR上
- UVA 1644 Prime Gap
- centOS建立bind服务,做为内网DNS解析服务安装记录
- 个人的尚学堂数据库oracle笔记(3)
- 八大排序算法