2013-12-11 132 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