2017-02-28 74 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我做了编辑!希望这能回答你的问题。 –