Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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,我有一个表,我正在为用户单击按钮时创建tr和td。这是非常好的工作,除了我需要能够添加id的那些tr的,并让他们自动递增 我的完整代码如下所示 $("#moreRows").click(function () { var rowCount = $('table tr').length -1; if(rowCount >= 100) { alert('you have 100 rows'); }else{ $("#c

我有一个表,我正在为用户单击按钮时创建tr和td。这是非常好的工作,除了我需要能够添加id的那些tr的,并让他们自动递增

我的完整代码如下所示

 $("#moreRows").click(function () {
     var rowCount = $('table tr').length -1;
     if(rowCount >= 100)
     {
        alert('you have 100 rows');
     }else{
         $("#correctionTable").each(function () {
             var tds = '<tr>';
             jQuery.each($('tr:last td', this), function () {

                 tds += '<td>' + $(this).html() + '</td>';
             });
             tds += '</tr>';
             if ($('tbody', this).length > 0) {
                 $('tbody', this).append(tds);
                 $('tbody', this).append(tds);
                 $('tbody', this).append(tds);
                 $('tbody', this).append(tds);
                 $('tbody', this).append(tds);
             } else {
                 $(this).append(tds);
             }
         });
     } 
     return false; 
}); 
$(“#更多行”)。单击(函数(){
var rowCount=$('table tr')。长度为-1;
如果(行数>=100)
{
警报(“您有100行”);
}否则{
$(“#校正表”)。每个(函数(){
var tds=“”;
每个($('tr:last td',this),函数(){
tds+=''+$(this.html()++'';
});
tds+='';
如果($('tbody',this).length>0){
$('tbody',this).append(tds);
$('tbody',this).append(tds);
$('tbody',this).append(tds);
$('tbody',this).append(tds);
$('tbody',this).append(tds);
}否则{
$(此).append(tds);
}
});
} 
返回false;
}); 
到目前为止,我已经尝试过类似的方法(不是完成我知道的每个函数,只是一个示例)

var num=5;
$(“#校正表”)。每个(函数(){
var id=num++;
var tds=“”;
尝试在each循环中将id添加到原始tr中。这只是将id 6添加到每个tr中

我也试过这个

var num = 5;
 $("#correctionTable").each(function () {
   tds = '<tr id="' + (++num) + '">';
var num=5;
$(“#校正表”)。每个(函数(){
tds=“”;
还有这个

var num = 5;
  $("#correctionTable").each(function () {
  ++num
   tds = '<tr id="' + num + '">';
var num=5;
$(“#校正表”)。每个(函数(){
++num
tds=“”;
但两者都不起作用

我还尝试在.each函数中移动该函数,将td附加到最后一个tr,但它不喜欢我向变量添加任何内容或将该变量替换为其他内容

任何帮助都将是惊人的,我只是被卡住了


用一个jsFiddle来表示我没有疯

您从来没有实际增加num的全局值。尝试以下方法:

var num = 5;
$("#correctionTable").each(function () {
   num++;
   tds = '<tr id="' + num + '">';
var num=5;
$(“#校正表”)。每个(函数(){
num++;
tds=“”;
Matheus还提供了一个可行的解决方案。.length()方法将返回DOM中存在的TDs数量。您可以使用each语句的内部。每次循环发生时,它将添加一个新的TD,从而增加.length()返回的数量

希望有帮助

var num = 5;
$("#correctionTable").each(function () {
   tds = '<tr id="' + (++num) + '">';
var num=5;
$(“#校正表”)。每个(函数(){
tds=“”;

不使用ID,您可以将事件委托给表级别:

$("#correctionTable").on('click','tr',function(e){
    //e.target is the clicked row
    console.log(e.target); //$(e.target) to wrap it inside jQuery
});

尝试var id=$(this.find('tr').length;在哪里以及为什么?我已经在这里获取了长度…$('table tr')).length-1;我正在尝试向trs添加id…您不应该使用id或注意解释原因。在我看来,您只需将单击事件委托给表级别,然后在处理程序中使用
event.target
。这样可以避免出现错误handlers@A.Wolff我没有100个处理程序,除了jQuery之外,我还需要id为php和风格设计了它们reasons@zazvorniki再次抱歉,我想您要绑定事件:(我已经试过了……它只是做同样的事情,在每个td上加6,而不是计算。我会做一个快速的小提琴。我理解你的意思,我正在应用精确的代码……它只是不递增……它不是你的精确代码,但我可以保证它递增num的值。检查小提琴。希望这有帮助!试试putti在第二个each语句中使用你的num++。我看到你的num只随表而增加,而不是随TR/TD而增加。我也尝试过这个方法,它与上面的方法相同,只是在每个id中添加一个6的id,并且从不计数。我真的需要php的idreasons@zazvorniki没关系,有时你出于某种原因需要ID;)如果您是后端开发人员,那么您应该真正考虑更改服务器端逻辑,因为在这里,您将有100个处理程序绑定到100个元素,性能不好为什么我要在后端创建字段,而我可以在前端更轻松地创建字段。只要我有这些id,我就可以将内容发送到ddatabase。一般来说,数据库请求不需要ID,但你比我更了解你的代码。对于sureNo,你通常只需要一个名称,但是如果屏幕上有100个东西,那么如果你有一个唯一的ID,就可以更容易地查找和定位东西。
$("#correctionTable").on('click','tr',function(e){
    //e.target is the clicked row
    console.log(e.target); //$(e.target) to wrap it inside jQuery
});