Jquery异步删除$(this).parent().parent()无效的解决办法

今天遇到了一个问题,Jquery异步删除无效,我是这么写的(看下图)


$(this).parent().parent().remove()直接这么写,数据库删除是没有问题的,但是网页却无法动态删除,只能刷新页面才能显示最新的结果,这显然不是我想要的结果。

实际上只需要这么改(先中间折腾下),定义一个变量var tr来接收一下,之后再通过tr.remove()就好了。

var tr = $(this).parent().parent();

 tr.remove();

上码:


@{
    ViewBag.Title = "新闻管理";
    Layout = "~/Areas/WebHotelManage/Views/Shared/_LayoutManage.cshtml";
}
@using Models
<!-- 自定义 -->
<link rel="stylesheet" type="text/css" href="~/css/AdminCss/NewsManager.css" />

<div class="container content_text">
    <div class="table-responsive">
        <table class="table table_color table-striped">
            <tr class="book_top">
                <th>发布时间</th>
                <th>新闻标题</th>
                <th>新闻分类</th>
                <th>操作</th>
            </tr>
            @{
                foreach (News item in ViewBag.listNew)
                {
                    <!-- 新闻1 -->
                    <tr>
                        <td>@WebHotel.Models.UtilityHelper.ToShortDate(item.PublishTime)</td>
                        <td>
                            <a href='/News/NewsDetail?newsId=@item.NewsId' target="_blank">
                                @item.NewsTitle
                            </a>
                        </td>
                        <td>@item.NewsCategory.CategoryName</td>
                        <td class="book-title">
                            <a class="" href="/WebHotelManage/News/ShowNewsDetail?newsId=@item.NewsId&categoryId=@item.CategoryId">修改</a>
                            @*<a href="/WebHotelManage/News/DeleteNews?newsId=@item.NewsId" onclick="return confirm('确定要删除吗?')">删除</a>*@
                            <a name=@item.NewsId class="btndelete" style="cursor:pointer">删除</a>
                        </td>
                    </tr>
                }
            }
        </table>
    </div>
</div>
@section footer{
    <script type="text/javascript">
        $(function () {
            $(".btndelete").click(function () {
                if (!confirm("确定要删除吗?")) { return; }
                var newid = $(this).attr("name");
                var tr = $(this).parent().parent();
                $.post("/WebHotelManage/News/DeleteNews", { "newsId": newid }, function (data, status) {
                    if (data == "success") {
                        tr.remove();
                    }
                    else {
                        alert("删除失败");
                    }
                })
            })
        })
    </script>
}

不过有个问题,为什么会这样,还不清楚。希望有知道原理的朋友留个言。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这段代码是一个JavaScript函数,名为`delConfirm`。它接受四个参数:`prompt`(提示信息),`delAddr`(删除地址),`id`(要删除的元素ID),以及`ajaxRequest`(是否发送Ajax请求)。 函数的作用是显示一个提示信息,并根据用户的操作执行相应的操作。首先,它将提示信息显示在HTML元素`<div id="prompt"></div>`中。然后,它设置一个隐藏的输入框`<input type="hidden" id="url">`,用于存储删除地址和要删除的元素ID。接下来,它为一个按钮`<button id="delButtonConfirm"></button>`绑定了一个点击事件处理程序。 当点击删除按钮时,根据`ajaxRequest`的值,函数执行不同的操作。如果`ajaxRequest`的值为"ajax_no",则直接通过`location.replace()`方法跳转到指定的删除地址。如果`ajaxRequest`的值为"ajax_yes",则通过Ajax发送异步请求。具体地,它使用`$.ajax()`方法发送一个GET请求到指定的删除地址,并指定数据类型为JSON。 当成功接收到响应数据时,函数会检查返回的数据中的ID是否不等于-1。如果不等于-1,则表示删除成功,它会遍历所有具有属性`name="delButton"`的按钮,并找到与返回的ID匹配的按钮。然后,它找到该按钮所在的父级节点,并将其从页面中移除。 最后,函数通过调用`$('#delConfirmModal').modal()`方法显示一个模态框,展示删除确认信息。 请注意,这段代码使用了jQuery库来简化DOM操作和Ajax请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韦_恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值