利用js动态添加删除table行的示例代码

当需要在网页中展示和处理数据时,使用table是一种非常常见的方式。在一些场景下,需要动态地添加或删除表格行,这就需要使用JavaScript进行操作。下面是一份利用js动态添加删除table行的示例代码攻略。

1. HTML结构

首先,我们需要在HTML中定义一个table,标记好每一列的thead和tbody,并预留出一行作为模板行。

<table>
  <thead>
    <tr>
      <th>序号</th>
      <th>姓名</th>
      <th>年龄</th>
      <th></th>
    </tr>
  </thead>
  <tbody id="table-body">
    <tr class="template-row">
      <td></td>
      <td><input type="text"></td>
      <td><input type="text"></td>
      <td><button class="delete-btn">删除</button></td>
    </tr>
  </tbody>
</table>
<button id="add-btn">添加一行</button>

上面的代码中,我们为表格定义了一个id为table-body的tbody元素,用于动态添加或删除行。另外,我们还为添加按钮定义了一个id为add-btn,用于触发添加行的操作。

注意到上面的代码中,我们用了一个带有class为template-row的行作为模板行。这个行的所有内容都为空,但是我们预先在它的删除按钮上绑定了一个事件监听器,用于删除点击它的那一行。这里可以采用jQuery或者纯原生js绑定事件。

// jQuery实现删除事件的绑定
$("table").on("click", ".delete-btn", function() {
  $(this).closest("tr").remove();
});

// 原生js实现删除事件的绑定
var deleteBtns = document.querySelectorAll(".delete-btn");
for (var i = 0; i < deleteBtns.length; i++) {
  deleteBtns[i].addEventListener("click", function() {
    this.closest("tr").remove();
  });
}

2. 添加行操作

在添加一行操作时,我们需要克隆一份模板行,并清空它的内容。这个操作可以通过在原模板行上调用cloneNode方法来完成,同时还要将新行的删除按钮与删除事件进行绑定。

$("#add-btn").on("click", function() {
  var newRow = $(".template-row").clone().removeClass("template-row");
  newRow.find("input").val("");
  newRow.appendTo("#table-body");
  newRow.find(".delete-btn").on("click", function() {
    $(this).closest("tr").remove();
  });
});

// 原生js实现添加操作
var addBtn = document.querySelector("#add-btn");
addBtn.addEventListener("click", function() {
  var templateRow = document.querySelector(".template-row");
  var newRow = templateRow.cloneNode(true);
  newRow.classList.remove("template-row");
  newRow.querySelectorAll("input").forEach(function(input) {
    input.value = "";
  });
  newRow.querySelector(".delete-btn").addEventListener("click", function() {
    this.closest("tr").remove();
  });
  document.querySelector("#table-body").appendChild(newRow);
});

3. 示例说明

下面举两个操作的示例说明。

3.1 添加行

(1)点击添加按钮,会在表格最后新增一行,行的所有输入框都为空。

(2)在新添加的行中将姓名和年龄的输入框填入相应的值,新行的删除按钮也是可用的。

3.2 删除行

(1)在任何一行的删除按钮上点击一下,这一行会被即时删除。

(2)即使删除的是最后一行,添加操作也能正常地在删除后继续新增新的行。

通过以上的两个操作示例,我们可以很清楚地看到整个动态添加删除表格行的示例的基本流程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用js动态添加删除table行的示例代码 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 微信小程序实现页面导航的方法详解

    让我来详细讲解“微信小程序实现页面导航的方法详解”。 一、背景 在微信小程序中,实现页面导航是常见的需求之一。页面导航能够提供用户友好的浏览体验,方便用户查看和操作不同的页面。因此,在开发微信小程序时,很多页面都需要实现导航功能,比如跳转到其他页面、返回上一级页面等。 二、实现方法 微信小程序提供多种方法实现页面导航,包括路由跳转、tabBar 转发等方法。…

    JavaScript 2023年6月11日
    00
  • JavaScript使用escape()、encodeURI()和decodeURI()实现URI编码解码

    JavaScript使用escape()、encodeURI()和decodeURI()实现URI编码解码 URI是统一资源标识符,URI包含了绝对URI和相对URI两种方式。其中,绝对URI包含协议、主机名、文件名和查询参数,而相对URI只需要相对于当前文件所属的路径进行命名即可。 URI编码就是为了解决URI含有特殊字符而无法被正确显示、传递和处理的问题…

    JavaScript 2023年5月20日
    00
  • JavaScript事件循环及宏任务微任务原理解析

    JavaScript事件循环及宏任务微任务原理解析 在学习 JavaScript 过程中,事件循环机制是必须要掌握的知识点之一。本文将详细介绍 JavaScript 事件循环机制的原理,以及宏任务和微任务的概念及异同点,其中包含两个示例说明。 事件循环机制的原理 JavaScript 是单线程执行的,意味着同一时间只能执行一段代码。然而在 Web 世界中,我…

    JavaScript 2023年6月11日
    00
  • javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)

    JavaScript高级程序设计第二版第十二章主要讲解了事件的相关知识点,其中包括事件的定义方式、事件处理程序、事件流、事件对象、跨浏览器问题的处理等内容。本章提供了一些实用的跨浏览器检测方法,以保证代码在各个浏览器平台下能够正常工作。下面是本章的要点总结: 事件处理程序 常见的事件处理程序有两种定义方式: HTML事件处理程序:直接将事件处理程序添加到HT…

    JavaScript 2023年5月27日
    00
  • JS实现页面炫酷的时钟特效示例

    下面我将详细讲解如何使用JS实现页面炫酷的时钟特效。 第一步:HTML结构 首先,在HTML中创建一个时钟的容器,可以使用<div>标签包裹起来,为其添加一个id属性,以便JS能够准确定位到该元素。 <div id="clock"></div> 第二步:CSS样式 接着,为时钟容器添加CSS样式。我们可…

    JavaScript 2023年5月27日
    00
  • 一些不错的JS 自定义函数第2/2页

    一些不错的JS 自定义函数攻略第2/2页 简介 在前一篇攻略中,我们介绍了一些有用的JS自定义函数,并且分析了他们的应用场景和使用方法。在本篇攻略中,我们将继续介绍一些实用的JS自定义函数。 目录 本文将会介绍以下JS自定义函数: debounce throttle trim debounce 函数名称:debounce 函数功能:函数防抖。在一定时间内,如…

    JavaScript 2023年5月27日
    00
  • js绘制购物车抛物线动画

    下面我将详细讲解一下如何使用JavaScript绘制购物车抛物线动画的完整步骤。 步骤一:创建抛物线数据 为了实现抛物线动画,我们需要先创建一些抛物线的数据。如下代码所示: function getBesselPoint(x1, y1, x2, y2, x3, y3, t) { var cx = 3 * (x2 – x1), bx = 3 * (x3 – x…

    JavaScript 2023年6月10日
    00
  • javascript实现数据双向绑定的三种方式小结

    以下是“javascript实现数据双向绑定的三种方式小结”的详细讲解: 一、背景知识 在深入讲解三种数据双向绑定的方式之前,我们需要先介绍一下Vue.js框架中的双向数据绑定是如何实现的。Vue.js的双向数据绑定原理和Angular的“脏值检测”类似,其内部重写了DOM元素的getter和setter方法,通过getter方法监听数据的变化,同时通过se…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部