如何为动态变化的表设置索引?

2024-01-11

我创建了一个表单,您可以在其中使用 javascript 和 jQuery 添加或删除表行。我想知道如何获取和设置每个表行的索引,以便即使我从表中间删除元素也能保持顺序。该表的形式为:

<thead>
    <tr>
        <th>Index</th>
        <th>Name</th>
        <th>Property</th>
        <th>Edit/Delete</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td class="index">Index goes here (1)</td>
        <td>NameOne</td>
        <td>PropOne</td>
        <td><span class="edit">Edit Icon</span> <span class="delete">Delete Icon</span></td>
    </tr>
    <tr>
        <td class="index">2</td>
        <td>NameTwo</td>
        <td>PropTwo</td>
        <td><span class="edit">Edit Icon</span> <span class="delete">Delete Icon</span></td>
    </tr>
    <tr>
        <td class="index">3</td>
        <td>NameThree</td>
        <td>PropThree</td>
        <td><span class="edit">Edit Icon</span> <span class="delete">Delete Icon</span></td>
    </tr>
</tbody>

现在我想要实现的是,如果我要删除第二行,前第三行的索引应该自动更改为 2,如果我要添加新元素,它应该自动采用索引值 3 等等。

我试图通过以下方式实现这一目标:

function setIndex(){
   $("td.index").each(function(index) {
       $(this).text(++index);
   });
}

但是,当我使用上述函数时,尽管添加元素时的初始索引正确打印,但当我在删除或编辑行后再次调用该函数时,索引将无法正确更新(我使用 jQuery 删除删除了该行)。

我还使用 jQuery append() 创建新的表行。

我认为虽然我使用了remove(),但它们并没有被完全删除,就像我在setIndex()中使用console.log(“test”)语句一样,尽管“test”只应该打印两次(我最初有创建了 3 行并删除了其中一行)它打印了三次,表示有 3 个 tr.index。

请帮我解决同样的问题。


你可以使用CSScounter-reset https://developer.mozilla.org/en-US/docs/Web/CSS/counter-reset and content https://developer.mozilla.org/en-US/docs/Web/CSS/content特性。

计数器重置属性允许对元素进行自动编号.
它适用于任何元素。

计数器重置属性用于reset给定值的 CSS 计数器。 它将命名计数器设置为特定值。

body{
  counter-reset: Serial;           /* Set the Serial counter to 0 */
}

table{
  border-collapse: collapse;
}

tr td:first-child:before{
  counter-increment: Serial;      /* Increment the Serial counter */
  content:counter(Serial);        /* Display the counter */
}
<table border="1">
  <thead>
    <tr>
      <th>Automatic Serial number</th>
      <th>Column 1</th>
      <th>Column 2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
    <tr>
      <td></td>
      <td>Column 1</td>
      <td>Column 2</td>
    </tr>
  </tbody>
</table>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为动态变化的表设置索引? 的相关文章

随机推荐

  • Telerik MVC Extensions Grid - 如何将网格过滤器应用于初始 LINQ 查询或传递到数据库?

    目前 在我的 MVC 网格中 我使用普通的服务器绑定 然后将过滤器作为查询字符串附加到 URL 此方法的问题是 如果我查询默认情况下有数千条记录的网格 但我只在网格的第一页 分页过滤器 上显示前 30 条记录 同样的事情也适用于姓氏的字符串
  • Servlet 中的参数化构造函数

    我可以在 servlet 中声明参数化构造函数吗 如果没有那么为什么 No Servlet 实例由容器通过反射创建 它们期望找到一个公共的 无参数的构造函数 默认构造函数 要配置 servlet 请使用 web xml 文件中指定的 ser
  • 具有多个数据库的 SSAS 立方体

    我有 3 个具有相同结构但数据不同的数据库 因为它们来自不同的客户端 现在 我有一个现有的 SSAS 项目 其数据源视图 多维数据集和维度只能使用或访问一个数据库 我想要的是能够使用具有相同结构的多个数据库 并使用它们创建一个多维数据集 每
  • 奇怪的指向成员函数的指针语法

    我了解如何声明函数的类型 typedef void typedef void f typedef void f is void using alias void f void alias void f is void 它可以用来声明函数指针
  • 在 JPA Criteria API 的子查询中使用 ORDER BY 的替代方法有哪些?

    考虑以下两个表 Project id project name Status id id project status name Where Status包含所有状态 其中Project已经是 假设我们要查询最新状态名称为 new 的所有项
  • 了解 Django CSRF_COOKIE_SAMESITE 和 CSRF_TRUSTED_ORIGINS

    显然 我无法理解跨域环境中 Django 2 2 4 设置对 CSRF 参数的影响 正如我已经注意到的那样 我必须设置SESSION COOKIE SAMESITE None如果我想将我的 Django 应用程序放入具有另一个域的网站的 i
  • symfony2自定义表单日期时间渲染

    我有一个表单 其中的日期时间呈现为 5 个选择输入 d MM YYYY H i builder gt add date datetime array data gt new DateTime now default value format
  • 使用jquery进行POST,如何正确提供'data'参数?

    我想以 POST 方式进行 ajax 调用 它将转到我的 servlet 我想发送参数化数据 如下所示 var mydata param0 some text param1 some more text 我将其作为 jquery ajax
  • Node.js在typeorm实体中添加created_at和updated_at

    I have task像这样的实体 import BaseEntity Column Entity PrimaryGeneratedColumn from typeorm Entity export class Task extends B
  • 如何自定义 Jenkins 构建名称?

    当我在 Jenkins 中运行作业时 每个构建都会被赋予一个名称 该名称显示在构建历史记录的 UI 中 基本上是当前日期和时间 我希望能够在那里输入构建参数 以便我可以在构建历史记录中看到哪些分支已构建以及何时构建 我已经搜索过可以执行此操
  • 将 Vue 与 Django 结合使用

    我最近开始使用 Django 开发一些社交媒体网站 我使用默认的django模板引擎来填充我的页面 但此刻我想补充一点javascript使网站更具活力 这意味着 页眉和页脚是每页都一样 标题应该有一个下拉菜单 一个在您键入时进行搜索的搜索
  • 带有包装内容项的 RecyclerView

    我需要实现下一个 UI 元素 未知大小的字符串列表 来自服务器调用 任何项目都应该是包装内容 如果某个项目不适合该行 则该项目将位于下一行 所有列表 网格均居中 我想用RecyclerView with StaggeredGridLayou
  • vite 构建始终使用静态路径

    我有一个简单的设置 包含一个 index html 一些 js 文件和一个 sass 文件 并使用 vite 构建它 我使用的是 vite 默认值 没有配置文件 运行构建后 dist 文件夹中的 index html 将所有内容引用为静态路
  • 将 XPath 与 Perl 结合使用

    我正在尝试复制我的C XPath代码在 Linux 上使用 Perl 执行 我将示例 8 6 中的代码复制并粘贴到Perl 和 XML http oreilly com catalog 9780596002053 如果我理解正确 我应该能够
  • Cloud Firestore:不同查询上的同一文档。是按分开阅读收费吗?

    我已阅读有关如何操作的文档write read在 Firebase 中是收费的 假设我有 20 项待办事项列表project id作为钥匙 todosRef onSnapshot 将被计为20 reads 我用新属性更新了待办事项 todo
  • 使用 apache-poi 4.0.1 库将单元格内容的某些部分设置为粗体/斜体

    我想用粗体和斜体的组合来设置单元格值的内容 就像 这是Sample content 但是 这不适用于 XSSFrichTextString 我正在使用 apache poi 库版本 4 0 1 我尝试使用 XSSFRichTextStrin
  • 为什么在 Common Lisp 中,当我运行参数为 1 的函数“acos”时,答案是错误的?

    当我运行 acos 1 来查找 1 emacs 的反余弦时 我得到了答案 而不是正确答案 0 6 125742f 17 为什么会这样以及如何得到 0 的正确答案 就像 Windows 计算器所说的那样 我在 Windows 8 上使用 SB
  • Spark - 从嵌套数组中的结构中选择列时出错

    更新 我在 JSON 中添加了更多详细信息 struct c 和 array t 以便更清楚地了解异常的位置 再会 我有一个带有结构类型嵌套数组的 Spark DataFrame 我想从该结构中选择一列 但收到错误消息 org apache
  • 在 Splinter 中获取 href 值?

    我想得到href价值来自 a Splinter 中的元素 有没有相关的api方法 如果您使用find by 方法 http splinter cobrateam info docs api driver and element api ht
  • 如何为动态变化的表设置索引?

    我创建了一个表单 您可以在其中使用 javascript 和 jQuery 添加或删除表行 我想知道如何获取和设置每个表行的索引 以便即使我从表中间删除元素也能保持顺序 该表的形式为 thead tr th Index th th Name