克隆表行,将随机或序列号附加到ID

时间:2009-08-04 23:32:22

标签: javascript jquery

所以我有这段代码

$('input.clone').live('click', function(){
   //put jquery this context into a var
   var $btn = $(this);
   //use .closest() to navigate from the buttno to the closest row and clone it
   var $clonedRow = $btn.closest('tr').clone();
   //append the cloned row to end of the table

   //clean ids if you need to
   $clonedRow.find('*').andSelf().filter('[id]').each( function(){
       //clear id or change to something else
       this.id += '_clone';
   });

   //finally append new row to end of table
   $btn.closest('tbody').append( $clonedRow );
});

问题是,我克隆的每一行都被命名为_clone 我如何写这个,以便每次运行该函数时,它会选择一个随机或更多idealy序列号来附加到id而不是“_clone”

3 个答案:

答案 0 :(得分:1)

String(Math.floor(Math.random()*1000000))

会在0到999999之间以字符串形式给出一个随机数。

答案 1 :(得分:1)

为什么不使用表格中的行数

$clonedRow.find('*').andSelf().filter('[id]').each( function(){
       //clear id or change to something else
       var rowCount = $btn.closest('tr').siblings().length;
       this.id += 'row_' + rowCount;
   });

答案 2 :(得分:0)

$('input.clone').live('click', function(){
   var $btn = $(this);
   var $clonedRow = $btn.closest('tr').clone();

   $clonedRow.find('*').andSelf().filter('[id]').each( function(){
       this.id += '_clone' + $(this).siblings().size();
   });

   //finally append new row to end of table
   $btn.closest('tbody').append( $clonedRow );
});