2012-02-24 46 views
1
<tbody> 
    <tr class="th"> 
     <td> 
      this is a heead 
     </td> 
     <td> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Half Pallets 
     </td> 
     <td>4 Full Pallet 
     </td> 
    </tr> 
    <tr> 
     <td> 

     <td>4 Full Pallet 
     </td> 
    </tr> 
</tbody> 

看一看,假設我想爲第一個tr.th添加tr,然後我想將它們設置在最後一個tr然後第一個tr.th但我該怎麼辦。如何在表中添加我的td?

如果他們在表中是多個tr.th,那麼我需要在第三個tr.th中設置tr從最後一個到我的情況。

你能告訴我怎麼做到這一點。

感謝

+0

你的意思是你想在'tr.th'之前的表中添加一個新的'tr',如果它存在的話,或者在'table'的末尾,如果不存在? – 2012-02-24 14:23:32

+0

@RoryMcCrossan我的「思維朗讀」功能完全按照您的解釋提出了問題! :P – 2012-02-24 14:25:20

+0

讓我們來看看 – Adrian 2012-02-24 14:28:19

回答

1

假設你有一些HTML像這樣:

<table> 
    <tbody> 
     <tr class="th"> 
      <td>Some header</td> 
     </tr> 
     <tr> 
      <td>Some data</td> 
     </tr> 
     <tr> 
      <td>Some more data</td> 
     </tr> 
     <tr class="th"> 
      <td>Another header</td> 
     </tr> 
     <tr> 
      <td>Some data</td> 
     </tr> 
     <tr> 
      <td>Some more data</td> 
     </tr> 
    </tbody> 
</table> 

那麼,我想你想要得到的HTML看起來像這樣:

<table> 
    <tbody> 
     <tr class="th"> 
      <td>Some header</td> 
     </tr> 
     <tr> 
      <td>Some data</td> 
     </tr> 
     <tr> 
      <td>Some more data</td> 
     </tr> 
     <tr> 
      <td>A new bit of data in a new row</td> 
     </tr> 
     <tr class="th"> 
      <td>Another header</td> 
     </tr> 
     <tr> 
      <td>Some data</td> 
     </tr> 
     <tr> 
      <td>Some more data</td> 
     </tr> 
    </tbody> 
</table> 

在這種情況下,你可以使用下面的jQuery:

var headerRows = $('tr.th'); 

if(headerRows.length > 1) { 
    var headerRow = headerRows.get(1); 
    $(headerRow).before('<tr><td>A new bit of data in a new row</td></tr>'); 
} 
else if(headerRows.length == 1) { 
    var headerRow = headerRows.get(0); 
    $(headerRow).closest('tbody').append('<tr><td>A new bit of data in a new row</td></tr>'); 
} 
else { 
    // no header rows - do nothing? 
} 

Working DEMO

或者,在此之前添加一個新行提琴下一個<tr>元素與類th當一個<tr>元素與類th被點擊時:Updated DEMO

+0

非常非常感謝。我喜歡它。 – Adrian 2012-02-24 15:21:31

1

你可以做(​​我打算要一個新的<tr>添加到表的末尾:如果最後<tr>有類th你想要的<tr class="th">之前添加新<tr>

//get the last tr 
var trLast = $('tr:last'); 
//create a tr to add 
var trToAdd = $('<tr>'); 
//if the last tr has the class th 
if(trLast.hasClass('th'){ 
    //add the new tr before the last 
    trLast.before(trToAdd); 
}else{ 
    //add the new tr after the last 
    trLast.after(trToAdd); 
} 
+0

謝謝,假設我有兩個tr.th,我想先添加它,然後它應該從第二個tr.th開始。因此在第一個tr.th和第二個tr.th之間的最後一個tr中添加用於第一個tr.th的tr。 – Adrian 2012-02-24 14:32:05

+0

@ user1197366你是什麼意思?你可以更新你的問題,如果你想 – 2012-02-24 14:33:25