【问题标题】:How to avoid duplicate tags (id) being generated when new rows are added to HTML table using jQuery at runtime在运行时使用 jQuery 将新行添加到 HTML 表时如何避免生成重复的标签(id)
【发布时间】:2020-11-15 13:57:15
【问题描述】:

首先,我希望记录下我不确定我将要问什么根据 SO 标准提出了一个适当的问题。但是,它是这样的:

我有一个 HTML 表,可以在运行时使用 jQuery 添加行。列数反映了基础表字段。除了表格字段,我还有两个额外的单元格 (tds) 用于:

  • 显示行号
  • 删除链接可删除(相应的)行

我正在生成ids,因为每个新行都是动态添加的。此外,随着新行的添加,行号(在行的第一个单元格中)正在更新为下一个更高的数字。

一切都按要求进行,直到我意识到如果额外的 rows 数量超过某个值,则特定行中的 row number 输入框是 blank 并从下一行开始,继续编号,直到到达下一个循环中的特定行。

例如,行编号从 1 一直持续到 10,然后在下一行中缺少 11(应该如此)。如果我继续添加更多行,则行号从 12 继续到 21(21 再次丢失)等等。在研究ids 时,我意识到第一行的最后一个单元格 与第11 行的第一个单元格 具有完全相同的id。因此,如果我为第 11 行的第一个单元格生成的idid_tIndx111,那么第一行的最后一个单元格也具有相同的 id,即id_tIndx111。 (我现在头都晕了!!

正在生成的 ID 的图示:

第 11 行,第一个单元格:id_tIndx111 第 1 行,最后一个单元格:id_tIndx111

第 21 行,第一个单元格:id_tIndx211 第 2 行,最后一个单元格:id_tIndx211

缺少行号的原因当然是浏览器遇到了重复ids。

所以,我试图克服这个毛病,就是将底层表中的字段数减少1。而且缺少行号的问题似乎已经解决了!(?)强>

我的问题是:在这种情况下应该采取什么方法?因为我不会总是随意将表中的字段数保持在一定数量。并且使用包含 10 个以上字段的表格会遇到我刚刚描述的问题。

感谢您浏览以上内容。

【问题讨论】:

    标签: javascript jquery html-table


    【解决方案1】:

    我相信您正在自己生成 id。你可以重组你的身份证。像这样的,

    id_tIndx1_11 
    

    在这种情况下,id_tIndx1_11id_tIndx11_1 将不相同。那会解决你的问题。如果您可以添加生成 id 的代码,我们可以更准确地帮助您。

    【讨论】:

    • 不要从你的回答中拿走任何东西,但我在你回复之前已经解决了标记你的回复,因为它接近我做了什么)。我所做的是针对循环中的最后一个单元格(我有链接)生成表元素的属性。它正在工作。 (正如他们所说,睡一个问题来解决它,我没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 2018-03-13
    • 2015-12-29
    相关资源
    最近更新 更多