我试图弄清楚如何更改所有 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/