2013-12-11 126 views
0

我正在尋找answser,但沒有找到如何解決我希望的問題。從索引中刪除特定的td

我想從表中刪除一些td。 td沒有class或id。

<table> 
    <tbody> 
     <tr class="ligne-02"> 
      <th>Blabla</th> 
      <td>25,2</td> 
      <td>27,6</td> 
      <td>22,4</td> 
      <td>23,0</td> 
      <td>26,3</td> 
      <td>28,5</td> 
      <td>28,0</td> 
     </tr> 
    </tbody> 
</table> 

這裏我jQuery代碼非常簡單:

jQuery('table tbody tr td').each(function() { 
    if (jQuery(this).index() < 3) { 
     alert(jQuery(this).text()); // display the good td value 
     jQuery(this).remove(); // remove all td 
    } 
}); 

我鑫卡特,如果jQuery的(本)的.text返回正確的值,因此jQuery的(這)是循環的,目前TD。但jQuery(this).remove()刪除所有td,我不明白爲什麼。如果有人能夠提前

回答

4

選擇元素,因爲當你從表中刪除的第一個項目第四個項目將成爲第三屆一個等等...所以它會刪除所有元素

,如果你要刪除的前3個元素,然後嘗試

jQuery('table tbody tr td').slice(0, 3).remove() 

演示:​​

如果你有多個行,然後

jQuery('table tbody tr').find('td:lt(3)').remove(); 
+0

感謝您的解釋! :)並不需要使用每個循環,這是完美的! – TikTaZ

4

向我解釋.. :)

感謝猜你想刪除前三TD的,

jQuery有:gt (greater than):lt (lower than):eq (equal to)選擇,可以是有益的基於索引

jQuery('table tbody tr td:lt(3)').remove() 
+0

謝謝,我不knowed約:長線選擇。但我失敗了,如果我嘗試爲我的表中的每個tr做一個循環。 如果我這樣做了三行表,它會刪除第一行中的所有td,第二行選擇td代碼而第三行沒有任何結果: 「jQuery('table tbody tr')。each(function(){ jQuery('td:lt(3)')。remove(); });' – TikTaZ

+0

您不需要循環,這將選擇任何TABLE中任何TBOD內的任何TR內的索引小於3的所有TD ,更具體地使用適當的選擇器。 – adeneo