【问题标题】:Emptying the <tbody> is not working清空 <tbody> 不起作用
【发布时间】:2015-10-26 09:19:36
【问题描述】:
 $(document).ready(function () {
            $('#btnSearch').bind('click', function () {
                var textS = $("#txtSearch").val();
                var filterS = $("#Filter option:selected").val();
                var url = '@Url.Action("SearchGuest","Dashboard")';
                alert(url);
                $.ajax({
                    type: 'GET',
                    url: url,
                    data:{text:textS,filter:filterS},
                    success: function (emp) {
                        $('#TableGuest tbody > tr').remove();
                        jQuery.each(emp, function (i, val) {

                            $('#TableGuest tr:last').after("<tr><td>"+val.Name+"</td><td>"+val.FatherName+"</td><td>"+val.CNIC+"</td><td>"+val.Phone+"</td></tr>");
                        });

                    },
                    error: function (emp) {

                    }
                });


            });
        });

我尝试过各种功能,比如

  • $('#TableGuestBody').empty()
  • $('#TableGuest tbody &gt; tr').remove();
  • $("#TableGuestBody").html("");

但以上都不起作用:(

它继续添加新行而不删除以前的行!

注意:我只想删除&lt;tbody&gt;中的&lt;tr&gt;

【问题讨论】:

  • 您确定您的表格有&lt;tbody&gt; 元素吗?
  • 是的,它有&lt;tbody id="TableGuestBody"&gt;
  • 您对$('#TableGuest tr:last') 的使用表明可能不是? - 因为那只会在最后一个 &lt;tr&gt; 元素之后添加,如果 &lt;tbody&gt; 元素为空,则意味着新行将添加到 &lt;thead&gt; 部分。我怀疑添加新行是问题所在。尝试使用$('#TableGuestBody').append(yourNewRow);

标签: c# jquery ajax asp.net-mvc-4 html-table


【解决方案1】:

假设您确实有一个 &lt;tbody id="TableGuestBody"&gt; 元素,那么使用 $('#TableGuestBody').empty() 就可以正常工作(并清除所有 &lt;tr&gt; 元素)。

您的问题在于添加新行的方式。

$('#TableGuest tr:last').after(...);

将在表中最后一个&lt;tr&gt; 元素之后添加新行,并且由于您刚刚删除了&lt;tbody&gt; 元素中的所有行,因此新行将添加到您的&lt;thead&gt; 元素中。因此,现在当您调用$('#TableGuestBody').empty() 时,它会清除已经为空的&lt;tbody&gt; 元素的内容,但您仍然会看到先前添加的行,因为它们位于&lt;thead&gt; 元素中。修改代码以将新行添加到

$('#TableGuestBody').append(...);

【讨论】:

    【解决方案2】:

    这对你有用它对我有用

    $(document).ready(function() {
            $("tbody").find("tr").remove();
        });
    

    这样它只会删除tbody中的tr

    如果您的页面上有多个表格,您可以更具体地指定要清空的 tbody

     $(document).ready(function() {
            $("tbody#TableGuestBody").find("tr").remove();
        });
    

    检查一下here

    【讨论】:

    • 同样的问题!我没有删除以前的行并继续添加更多:S
    • 你看到我给你的例子了吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 2021-11-03
    相关资源
    最近更新 更多