jQuery正在删除错误的表列

时间:2014-03-05 10:18:06

标签: javascript jquery html

我一直在尝试通过引用此网站来删除我的html表的第一列:Link

但是当我点击它时,我桌子的第二列被删除了。在第二次单击时,第3列将被删除。进一步点击,没有任何反应。下面你可以查看我的html和javascript,它很简单,但我对结果感到困惑。

<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
        <script>

            function deleteFirstColumn(){
                //$('table tr').find('td:eq(1),th:eq(1)').remove();

                //remove the 1st column
                $('table tr').find('td:eq(1),th:eq(1)').remove();

                //remove the 2nd column
                //$('table tr').find('td:eq(1),th:eq(1)').remove();
            }
        </script>

    </head>

    <body>

        <button type="button" onclick="deleteFirstColumn()"> delete first column</button>

        <table border="1">
            <tr>
                <td>column 1</td>
                <td>column 2</td>
                <td>column 3</td>
            </tr>

            <tr>
                <td>c 1</td>
                <td>c 2</td>
                <td>c 3</td>
            </tr>

            <tr>
                <td>c 1</td>
                <td>c 2</td>
                <td>c 3</td>
            </tr>
        </table>
    </body>
</html>

2 个答案:

答案 0 :(得分:1)

这是正确的,因为JavaScript中的索引以0开头:

$('table tr').find('td:eq(0),th:eq(0)').remove();  // remove 1st column

每次点击后,您的jQuery选择器会从表格中剩下的内容中找到第一列,因此在点击3次后,您将从表格中删除所有列。

答案 1 :(得分:1)

.eq()适用于基于zero的索引。换句话说,我们在使用该函数时考虑的下限是zero

尝试,

 $('table tr').find('td:eq(0),th:eq(0)').remove();