2014-01-08 85 views
0

我有一個表,我正在創建tr。和td,當人點擊按鈕時。這是奇妙的工作,除了我需要能夠添加id到那些tr並讓他們自動增加。當jQuery創建元素時自動遞增ID

我完整的代碼看起來像這樣

$("#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 num = 5; 
    $("#correctionTable").each(function() { 
    var id = num++; 
    var tds = '<tr id="'+id+'">'; 

嘗試和補充該id在每個循環內的原始tr。這只是將6的id添加到每個tr。

我也試過這種

var num = 5; 
$("#correctionTable").each(function() { 
    tds = '<tr id="' + (++num) + '">'; 

var num = 5; 
    $("#correctionTable").each(function() { 
    ++num 
    tds = '<tr id="' + num + '">'; 

但也有工作

我自己也嘗試移動在那裏安裝了的。每個函數內的功能td到最後一個tr,但它不喜歡我向變量添加任何內容或將該變量替換爲其他任何內容。

任何幫助將是驚人的,我只是平原堅持!

一個的jsfiddle表明我不是瘋了http://jsfiddle.net/bwHnq/33/

+0

嘗試VAR ID = $(本).find( 'TR') 。長度; – Matheus

+0

哪裏和爲什麼?我已經抓住了這裏的長度... $('table tr')。length -1;我正在嘗試向trs添加一個ID ... – zazvorniki

+0

您不應該使用ID或謹慎解釋原因。就像我看到的那樣,你只需要將點擊事件委託給表級,然後在處理程序中使用'event.target'。這將會避免100個處理程序 –

回答

0

你從來沒有真正提高NUM的全球價值。試試這個:

var num = 5; 
$("#correctionTable").each(function() { 
    num++; 
    tds = '<tr id="' + num + '">'; 

馬修斯還提供了一個可行的解決方案。 .length()方法將返回DOM中出現多少個TD的數量。你可以使用你的每條語句的內部。每發生一次循環,它都會添加一個新的TD,從而增加由.length()返回的數字。

希望它有幫助!

JSFIDDLE

+0

我有已經嘗試過...這只是做同樣的事情,並增加6每個TD的而不是計數 – zazvorniki

+0

我會做一個快速的小提琴。 – wrxsti

+0

我明白你在說什麼,我正在使用確切的代碼......它只是不增加...... – zazvorniki

0

var num = 5; 
$("#correctionTable").each(function() { 
    tds = '<tr id="' + (++num) + '">'; 
+0

我也試過這個,它和上面一樣,只是爲每個id添加了一個id,並且從未計數 – zazvorniki

0

不使用的ID,你可以委託事件表級別:

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

我真的需要id爲php的原因 – zazvorniki

+0

@zazvorniki沒關係,你有時需要ID某種原因;)如果你是後端開發人員,那麼你應該真的考慮改變服務器端邏輯,那麼因爲在這裏,你將有百個處理程序綁定到上百個元素,在性能上不是很好 –

+0

爲什麼當我可以創建後端時做前端要容易得多。只要我有這些ID我會好起來的,所以我可以發送東西到數據庫。 – zazvorniki