2017-02-28 73 views
0

我克隆了一個tr表。 我想更改克隆表的屬性tr

var select = $("#CloneThisTR").clone(true); 

我想和喜歡TR_FromCities_1 _1改變每個ID TR_FromCities_2 或TR_ToCities_1到TR_ToCities_2等

改變TD的屬性

<tr style="cursor:move" id="CloneThisTR"> 
        <td> 
         <div class="input-group" id="TP_tr_dest_from_city_1"> 
          {{{ Form::select('TP_tr_dest_from_city_multicity', [''=>'* From City']+$TR_FromIndianCities , null,array('id'=>'TR_FromCities_1','class'=>'form-control requestDiv','name'=>'TP_tr_dest_from_city_multicity_1','title'=>'Enter travel from city',)) }}} 
         </div> 
        </td> 
        <td> 
         <div class="input-group" id="TP_tr_dest_to_city_1"> 
          {{{ Form::select('TP_tr_dest_to_city_multicity', [''=>'* To City']+$TR_FromIndianCities , null,array('id'=>'TR_ToCities_1','class'=>'form-control requestDiv','name'=>'TP_tr_dest_to_city_multicity','title'=>'Enter travel from city',)) }}} 
         </div> 
        </td> 
        <td> 
         <div class="input-group" id="TP_tr_from_date_1"> 
          {{{ Form::text('TP_tr_from_date_multicity', null, array('type' => 'text','data-date-format'=>"yyyy-mm-dd", 'class' => 'form-control datepicker','name'=>'TP_tr_from_date_multicity_1','id' => 'TravelFromDate_1','placeholder'=>'* Travel Start Date','title'=>'Pick the travelling start date')) }}} 
         </div> 
        </td> 
       </tr> 

上午克隆這個TR如何使用find()來完成?

+0

雖然這是可能的,但在克隆的元素上使用'id'屬性通常是反模式,因爲它成爲一個非常大的難題。例如,當中間的一個被移除時,你必須重新編號所有行。更好的選擇是在所有行上使用公共類,然後遍歷DOM以通過行索引執行任何所需的操作。 –

+0

其實我會用這個排序。因此,如果在排序後位置發生任何變化,則可能會失敗。 – Prit

+0

克隆時不能改變它嗎?我認爲我們可以改變。但我無法去。我試過了,但沒有奏效。 – Prit

回答

0

在這裏,獲取克隆tr的id,與_分離。

TR_FromCities_1應該給出[「TR」,「FromCities」,「1」]

獲取數組的最後一個元素,轉換爲int並將其加1。將其轉換回字符串並在最後一個數組索引中進行替換。加入並設置克隆的ID!

 var id = $select.attr('id') || null; 
     if(id) { 
      var spl = beforeID.split("_"); 
      var i=(parseInt(spl[spl.length-1])+1).toString(); 
      spl[spl.length-1]=i; 
      $select.attr('id', spl.join("_")); 
     } 

所有TD在克隆TR!

$select.find('td').each(function(){ 
     var id = $(this).attr('id') || null; 
     if(id) { 
      var spl = beforeID.split("_"); 
      var i=(parseInt(spl[spl.length-1])+1).toString(); 
      spl[spl.length-1]=i; 
      $select.attr('id', spl.join("_")); 
     } 
}); 

希望這有助於!

+0

是的你是對的。但是,這將工作如果我想改變一個ID。 但我想遍歷整個克隆的TR並更改每個 – Prit

+0

的ID我做了編輯!希望這能回答你的問題。 –