Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery动态id重新设置范围_Jquery - Fatal编程技术网

jQuery动态id重新设置范围

jQuery动态id重新设置范围,jquery,Jquery,我试图为表行获得一个直接的id计数 例如,如果您有一个包含5行的表,那么行ID应该在1到5之间 但由于我有一个动态表,其中可以添加或删除行,所以当用户在中间删除某行时,问题就出现了。 假设您在表中添加了3个新行 row-1 row-2 row-3 如果您删除第二行,您将以 row-1 row-3 如果您添加一个新行(因为我从上一行获取id),您将得到这个 row-1 row-3 row-4 如何解决这个问题?如何动态重新设置行ID的范围 我认为这必须与行删除绑定,因为如果中间没有删除行,添

我试图为表行获得一个直接的id计数

例如,如果您有一个包含5行的表,那么行ID应该在1到5之间

但由于我有一个动态表,其中可以添加或删除行,所以当用户在中间删除某行时,问题就出现了。 假设您在表中添加了3个新行

row-1
row-2
row-3
如果您删除第二行,您将以

row-1
row-3
如果您添加一个新行(因为我从上一行获取id),您将得到这个

row-1
row-3
row-4
如何解决这个问题?如何动态重新设置行ID的范围

我认为这必须与行删除绑定,因为如果中间没有删除行,添加不是问题。


下面是一个例子。检查web浏览器中的id属性

您需要编写代码来重新排列索引1中行的id。您可以使用gt选择器和
.attr()
回调函数将索引1中的行作为目标,以设置新ID:

$('#t1 tr:gt(0)').attr('id',function(i,o){
    return "r"+ i++ ;
});

您需要编写代码来重新排列索引1中的行ID。您可以使用gt选择器和
.attr()
回调函数将索引1中的行作为目标,以设置新ID:

$('#t1 tr:gt(0)').attr('id',function(i,o){
    return "r"+ i++ ;
});

您可以使用以下功能:

var rows = $('#t1 tr') // get the amount of rows

$.each(rows, function(i, e) {
    $(e).attr("id", "r" + i);// set the new id
})
$(文档)。在('click','#addRow',函数()上{
var row=parseInt($('#t1 tr:last child').attr('id').replace(/[^\d]/g',),10)+1;
$('#t1')。追加('X');
变量行=$(“#t1 tr”)
$.each(行、函数(即){
$(e).attr(“id”,“r”+i);
})
});
$(文档).on('单击','.deleteRow',函数(){
var row=parseInt($(this).closest('tr').attr('id').replace(/[^\d]/g',),10);
如果(行>1){
$('#r'+行).remove();
}
});

项目
量
X

添加行
您可以使用以下命令:

var rows = $('#t1 tr') // get the amount of rows

$.each(rows, function(i, e) {
    $(e).attr("id", "r" + i);// set the new id
})
$(文档)。在('click','#addRow',函数()上{
var row=parseInt($('#t1 tr:last child').attr('id').replace(/[^\d]/g',),10)+1;
$('#t1')。追加('X');
变量行=$(“#t1 tr”)
$.each(行、函数(即){
$(e).attr(“id”,“r”+i);
})
});
$(文档).on('单击','.deleteRow',函数(){
var row=parseInt($(this).closest('tr').attr('id').replace(/[^\d]/g',),10);
如果(行>1){
$('#r'+行).remove();
}
});

项目
量
X


添加行
为什么要重新排列ID?因为我正在使用该变量在我的数据库中存储数据,因此,不建议以这种方式重新索引您的记录,当您使用关系模型时,它可能会破坏您的数据库我没有索引记录……这有点复杂,因为我无法显示代码。(公司规则)。问题是,我没有对进入数据库的数据重新编制索引,我只需要使用ids对其进行正确排序。为什么要重新排列ids?因为我使用该变量在我的DBYea中存储数据,因此,不建议对记录重新编制索引,当您使用关系模型时,它可能会破坏您的数据库。我没有索引记录……这有点复杂,因为我无法显示代码。(公司规则)。问题是,我没有重新索引进入数据库的数据,我只需要使用ids对其进行正确排序,或者只需要
i++
,很抱歉被删除picky@Mr.Alien:谢谢。你的建议有道理。不要抱歉:)什么是
tr:gt(0)
我以前从未见过这个…我在谷歌上搜索过它上面写着大于>@lewis4u你也可以做一些类似
$('#t1 tr:not(:eq(0)))
的事情,或者只是
i++
,很抱歉picky@Mr.Alien:谢谢。你的建议有道理。不要抱歉:)什么是
tr:gt(0)
我以前从未见过这个…我在谷歌上搜索它说它比>@lewis4u更大你也可以做一些类似
$(“#t1 tr:not(:eq(0))”)
这也行得通,但是米林德阿南特瓦是第一个回答没有问题的人,只是很乐意帮助这个工作,但是米林德阿南特瓦是第一个回答没有问题的人,很乐意帮忙