当前位置: 首页 > article >正文

deleteRow() 连续删除多行

    应用:删除表格选中的一行或多行。

html代码如下:

 

<table >
<tr>
<td >复选框</td>
<td >序号</td>
<td >代码</td>
<td >名称</td>
</tr>
<tbody id="mainBody">
<tr>
<td ><input type="checkbox" name="dms" value="D1" /></td>
<td >1</td>
<td >D1</td>
<td >名称1</td>
</tr>
<tr>
<td ><input type="checkbox" name="dms" value="D2" /></td>
<td >2</td>
<td >D2</td>
<td >名称2</td>
</tr>
<tr>
<td ><input type="checkbox" name="dms" value="D3" /></td>
<td >3</td>
<td >D3</td>
<td >名称3</td>
</tr>
<tr>
<td ><input type="checkbox" name="dms" value="D4" /></td>
<td >4</td>
<td >D4</td>
<td >名称4</td>
</tr>
</tbody>
</table>

 需求是,点击删除时可以删除复选框选中的一行或者多行。一般情况下,第一直觉都是按照如下写法:

 

 

function onDelete() {var checks = document.getElementsByName("dms");var tbBody = document.getElementById("mainBody");for (var i=0; i<checks.length; i++) {if (checks[i].checked) {   tbBody.deleteRow(i);}}
}

这样写存在一个问题,当第一行被删除时,表格的结构发生了变化,以前的第i+1行变成了现在的第i行,所以按照这种写法无法遍历删除所以选中的行。 

 

 正确的写法应该是像下面这样,从最大的行号开始删除,这样第i+1行被删除后不会影响第i行在表格中的行号。

 

function onDelete() {var checks = document.getElementsByName("dms");var tbBody = document.getElementById("mainBody");for (var i=checks.length-1; i>=0; i--) {if (checks[i].checked) {   tbBody.deleteRow(i);}}
}
 

 

http://www.lryc.cn/news/2416356.html

相关文章:

  • js发送邮件
  • 怎么查看文件的MD5码
  • 一、 QTP的前世今生
  • 基于VirtualBox虚拟机安装Ubuntu图文教程
  • jersey 入门示例_Jersey Web Service Hello World Java示例
  • 12款国内外企业协作工具推荐
  • SEO数据监控技巧都有哪些?
  • 如何优化网页加载速度?
  • 如何利用Python监控你女/男朋友每天都在浏览什么网站?
  • 表白,整人,无门槛,娱乐代码
  • Mac+virtualbox安装win7
  • NRF24L01 无线模块
  • CSS min-height 属性
  • STM32F103实验定时器
  • javascript——JS 实现下拉菜单
  • 消费者行为分析模型
  • eXtremeComponents指南
  • 做个计算器--生成注册码
  • 计算机CMOS设置详解
  • JAVA 面试题经典(附答案)
  • Windows系统中设置软件开机自启动
  • 驾驶理论模拟考试 - 网上模拟系统
  • 内网渗透篇-信息收集
  • html跟随鼠标代码,跟随鼠标特效代码
  • rost反剽窃检测系统_如何才能快速通过知网论文查重系统的查重?
  • ubuntu 10.04 lucid lts dvd download
  • linux中文man 2手册,linux中文man手册安装
  • 安卓开发学习网址
  • eclipse中文语言包下载、安装与配置
  • Mac OS X v10.6 或更高版本:重新启动后 iTunes 无法识别 iOS 设备