javascript - 如果大于 X,则从所有 div ID 中减去 "1"?

标签 javascript jquery

我试图弄清楚如何更改所有 div 的 ID(如果它们大于某个数字)。

基本上,我允许用户根据需要删除 Div。所有 div 都按从零到列中任意数量的 div 的顺序进行 ID 标识。如果用户有 8 个 div,则 ID 将如下所示:

0
1
2
3
4
5
6
7

如果用户删除了第三个 div,则每个 ID 大于 2 的 div 都应减 1,以便保持顺序。

我之前已经设置过它,以便应用程序可以计算已删除的 div 的数量,并将其考虑到依赖于 div 有序的其他代码,但是一项新功能使这种方式变得过于hacky而无法可靠地工作。

我已经尝试过类似的方法,但它为所有 div ID 返回 NaN

if ($(".queueListDiv .track").attr("id") > deletedId){
  $(".queueListDiv .track").attr("id", ($(".queueListDiv .track").attr("id") - 1))
}

有什么想法吗?

最佳答案

NaN 表示不是数字。您需要先解析正确的 ID,然后才能正确执行操作。看看这个:

// loop through the tracks
$(".queueListDiv .track").each(function () {
  // current element
  var $this = $(this);
  // get the id in number form
  var id = parseInt(this.id, 10);
  // if it is greater, do
  if (id > deletedId) {
    // remove one and set it back
    $this.attr("id", id - 1);
  }
});

我建议您不要将 ID 值设置为纯数值。

关于javascript - 如果大于 X,则从所有 div ID 中减去 "1"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570439/

相关文章:

javascript - Backbone.js vs Express vs Next JS ...和JSP?

jquery - jQuery 可以转换 ASCII 和 Unicode 字符吗?

javascript - 当值未定义时如何捕获Json数据错误?

javascript - 让 HTML 加载所有资源和脚本

javascript - 是否可以在 HTML 元素上设置 "watch",以便在 HTML 元素更改时命中 javascript 调试器断点?

javascript - JQM动态弹窗

javascript - 如何读取 Cypress 的数据值?

javascript - 使用多个 polymer 元素时如何避免重复导入 polymer ?

javascript - React-router-dom 不呈现在 switch 中的自定义组件之后定义的路由

javascript - Knockout JS 清除焦点输入