Jquery .attr()一个数字到所有id的末尾

时间:2015-03-24 17:11:34

标签: jquery

我试图在每个id的td之后在一个表中归一个数字。 我需要id保持不变,但每次克隆一个表时,每个ID后面都会设置一个新的数字。

这是一个小提琴,应该有助于理解我的问题。

.find('td').attr('id', '_'+ newNum)

Jsfiddle Example

新ID应该如下所示

id="td01_2"

2 个答案:

答案 0 :(得分:4)

变化:

newElem.find('td').attr('id', '_'+ newNum);

为:

newElem.find('td').attr('id', function () {
    return this.id + '_' + newNum
});

<强> jsFiddle example

这将通过获取现有的克隆ID(例如:td01)并添加_newNum,为克隆的td提供正确的新ID。

例如:

<tr>
    <td id="td01_2">td 01</td>
    <td id="td02_2">td 02</td>
    <td id="td03_2">td 03</td>
    <td id="td04_2">td 04</td>
    <td id="td05_2">td 05</td>
</tr>

答案 1 :(得分:0)

我添加了一个全局计数器var tdNum。然后将其附加到id。

$(document).ready(function () {
  var tdNum=0;
  $('#add_button').click(function () {
      var num = $('.datatable_class').length;
      var newNum = num + 1;
      tdNum++;
      var newElem = $('#input1').clone().attr('id', 'input' + newNum).removeClass('HiddenInput').addClass('.NewInputs').fadeIn( 1000 );
      newElem.find('td').attr('id', 'td'+tdNum+'_'+ newNum);
      $('#input' + num).after(newElem);  
   });

});