none
关于table tr 删除的问题 RRS feed

  • 问题

  • 我有一个table 格式是这样的
    <table cellspacing="0" cellpading="0" border="0" class="layui-table">
           <tbody>
                   <rt data-index=0> .....<tr>
                   <rt data-index=1> .....<tr>
                   。。。。。。
           </tbody>
    </table>

    前端用的是layui,我现在有一个click事件,要删除这个表格里面的全部单元格内容,这个怎么写。

    我用
    for (var i = 0; i < $(.layui-table rt).length; i++) {
             $("tr[data-index='" + $(.layui-table rt)[i] + "']").remove();
    }

    这个都没有效果。
    2020年10月10日 17:08

全部回复

  • 你好,

     

    首先你的前端html可能有点问题,你是不是想写成下面这样?

    <table cellspacing="0" cellpading="0" border="0" class="layui-table">
           <tbody>
                   <tr data-index=0> .....</tr>
                   <tr data-index=1> .....</tr>
                   。。。。。。
           </tbody>
    </table>

    table里面的行元素应该是tr,而不是rt。如果写成rt,可能会导致jquery选择不到该元素。

     

    另外,你不应该用for循环去删除。每次删除之后,对应的index自增,但是元素[i]由于前一位被删除,会自动降一位,删除不完全。

    类似于indexOutOfBound.

     

    建议你用jquery的empty()方法去删除table下所有的元素。如下面的Demo所示:

     <table cellspacing="0" cellpading="0" border="0" class="layui-table">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Name</th>
                    </tr>
                </thead>
                <tbody>
                    <tr data-index="0">
                        <td>1</td>
                        <td>John</td>
                    </tr>
                    <tr data-index="1">
                        <td>2</td>
                        <td>Tom</td>
                    </tr>
                </tbody>
            </table>
            <input id="removeBtn" type="button" value="Remove Table" />
            
            <script>
                $(function () {
                    $("#removeBtn").on("click", function () {
                        $(".layui-table").empty();
                    })
    
                })
            </script>

    希望这个能帮助到你。

    Best regards,

    Sean

    2020年10月15日 2:12