2011-08-08 37 views
4

我有這樣的小提琴在:http://jsfiddle.net/radi8/EwQUW/33/擴展克隆錶行的功能 - 改變行ID

注意,被限定在初始表是:

<table class="reference" width="100%" border="1" align=left id="secondaryEmails"> 
<thead> 
    <tr> 
     <th width="30%">SelectRow</th> 
     <th width="40%">Email</th> 
     <th width="30%">Ship Type</th> 
    </tr> 
</thead> 
<tbody> 
    <tr id="template" style="display:none"> 
     <td align="center"> 
      <input type=radio id="index_" name = "index" value="0"> 
     </td> 
     <td align="center"> 
      <input type="text" id="email_" name ="email_" value="" size=40> 
     </td> 
     <td align="center"> 
      <select style=width:150 id="shipType_" name="shipType_"> 
       <option value="0" "selected">Both</option> 
       <option value="1">Over Road</option>   
       <option value="2">Over Rail</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <input type=radio id="index_2" name = "index" value="2"> 
     </td> 
     <td align="center"> 
      <input type="text" id="email_2" name ="email_2" value="[email protected]" size=40> 
     </td> 
     <td align="center"> 
      <select style=width:150 name="shipType_2" id="shipType_2"> 
       <option value="0" >Both</option> 
       <option value="1" >Over Road</option> 
       <option value="2" selected>Over Rail</option> 
      </select> 
     </td> 
    </tr> 
</tbody> 
<tfoot> 
    <tr> 
     <th align="center"> 
      <button id='Add'>Add Row</button> 
     </th> 
     <th>&nbsp;</th> 
     <th align="center"> 
      <button id='update'>Update</button> 
     </th> 
    </tr> 
</tfoot> 

當我克隆的第一行,我需要將新行的ID改爲

<tr id="emlRow_1"> 

wh此號碼是該行的新ID。

有人可以指導我如何做到這一點?

回答

4

也許我失去了一些東西,但是這應該是一樣容易設置ID屬性:

var $clone = $("#template").clone(); 
var index = $("table.reference tr:not(.template)").length; 
$clone.attr("id", "emlRow_" + index); 

最新通報

變種數= $( 「table.reference TR」 )。長度;

$("#Add").click(function() { 
    count++; 
    var $clone = $("#secondaryEmails tbody tr:first").clone(); 
    $clone.attr({ 
     id: "emlRow_" + count, 
     name: "emlRow_" + count, 
     style: "" // remove "display:none" 
    }); 
    $clone.find("input,select").each(function(){ 
     $(this).attr({ 
      id: $(this).attr("id") + count, 
      name: $(this).attr("name") + count 
     }); 
    }); 
    $("#secondaryEmails tbody").append($clone); 
}); 

工作示例:http://jsfiddle.net/hunter/EwQUW/35/

+0

是的,但看看小提琴,它的結構與你描述的有所不同。 – radi8

+0

更新了我的答案,並創建了一個你的小提琴。你能告訴我爲什麼這些標準沒有任何數字差距對你來說很重要嗎?我並不是說你不需要他們,但我想知道你想要結束什麼。 – hunter

+0

這是一項家庭作業嗎? – hunter

0

你可以試試這個js代碼。

場景:我正在製作div內的表的克隆,並刪除克隆鏈接的刪除克隆點擊刪除克隆鏈接。

<script> 
    var count=1; 
    function makeClone() 
    { 
    var $clone = $(".cloneTable:first").clone(true); 

    $clone.find(':text,:file').each(function() { 
      $(this).attr('id',($(this).attr("id")+count)); 
      $(this).val(' '); 
     }); 
     $clone.find("a").each(function() { 
       $(this).val('').attr('id', function(_, id) { 
       return count; 
       }); 
      }); 
     $clone.find("span").each(function() { 
      $(this).attr({ 
       id: $(this).attr("id") + count 
     }); 
     }); 
      $clone.attr('id', function() { 

        return this.id + count; }); 
     //for use of datepicker 
     $clone.find('.myDate').removeClass('hasDatepicker').datepicker(); 

    $clone.appendTo('#addCarrierDiv'); 
    $('#Test'+count).html('<strong>Test '+(parseInt(count)+parseInt(1))+'</strong>'); 

    count=count+1; 
} 
    </script> 

這裏我正在更新我的答案,提供代碼以刪除克隆。

$(document).ready(function(){ 

$('.removeClone').live('click',function() { 

     var length=$('.cloneTable').length; 
     if(length==1) 
      { 
      alert('There should be atleast one clone'); 
      return false; 
      } 


     var id = $(this).attr('id'); 
     var countVal=parseInt(id)+parseInt(1); 
     $(this).closest('.cloneTable').remove(); 
     for(var removecount=parseInt(countVal);removecount<=length;removecount++) 
      { 
      $clone=jQuery("#maintable"+removecount); 
      if(removecount==1) 
       { 
       $clone.find(':text,:file').each(function() { 
         var textId=$(this).attr("id"); 
         var testVal=textId.replace(/[0-9]/g, ''); 
         $(this).attr('id',testVal); 

        }); 

       $clone.find("a").each(function() { 
         var textId=$(this).attr("id"); 
         var testVal=textId.replace(/[0-9]/g, ''); 
         $(this).attr('id',testVal+id); 

        }); 

       $clone.find("span").each(function() { 
         var textId=$(this).attr("id"); 
         var testVal=textId.replace(/[0-9]/g, ''); 
         $(this).attr({ 
         id: testVal 
        }); 
         $(this).html('<strong>Test '+removecount+'</strong>'); 
        }); 

       $clone.attr('id', function() { 
        var textId=$(this).attr("id"); 
        var testVal=textId.replace(/[0-9]/g, ''); 
         return (testVal); 
         }); 
       id=parseInt(id)+parseInt(1); 
      } 

      else 
       { 
       $clone.find(':text,:file').each(function() { 
        var textId=$(this).attr("id"); 
        var testVal=textId.replace(/[0-9]/g, ''); 
        $(this).attr('id',testVal+id); 

       }); 
       $clone.find("a").each(function() { 
        var textId=$(this).attr("id"); 
        var testVal=textId.replace(/[0-9]/g, ''); 
        $(this).attr('id',testVal+id); 

       }); 

       $clone.find("span").each(function() { 
        var textId=$(this).attr("id"); 
        var testVal=textId.replace(/[0-9]/g, ''); 

        $(this).attr({ 
        id: testVal+id 
       }); 
        $(this).html('<strong>Test '+removecount+'</strong>'); 
       }); 

       $clone.attr('id', function() { 
        var textId=$(this).attr("id"); 
        var testVal=textId.replace(/[0-9]/g, ''); 
         return (testVal+id); 
         }); 
       id=parseInt(id)+parseInt(1); 
       } 
      } 
     count=parseInt(count)-parseInt(1); 
    }); 
}); 

此作品適合我。希望這段代碼可以幫到你。