从索引表中删除特定的td

时间:2013-12-11 15:47:36

标签: jquery html-table

我正在寻找答案但却找不到如何解决我的问题。

我想从表中删除一些td。 td没有课程或身份。

<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
    }
 });

我认为如果j Query(this).text返回正确的值,那么jQuery(this)是循环中的当前td。但jQuery(this).remove()删除所有td,我不明白为什么。如果有人可以向我解释.. :)

3 个答案:

答案 0 :(得分:5)

因为当您从表中删除第一个项目时,第四个项目将成为第三个项目,依此类推......所以它将删除所有元素

如果你想删除前3个元素,那么试试

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

演示:Fiddle

如果你有多行,那么

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

答案 1 :(得分:4)

猜测你正试图删除前三个TD,

jQuery有:gt (greater than):lt (lower than)以及:eq (equal to)选择器,可用于根据索引选择元素

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

答案 2 :(得分:0)

您可以尝试这样

$('tbody tr:last td').slice(1, 3).remove();
$('tbody tr:last td:eq(0)').attr("colspan", 3).css({"text-align":"center"});