今天在用jquery对一个table进行操作,其中html的部分代码是这样的<tbody style="line-height:20px;">
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
<tr>
<td class="td2" width="48" height="50">
<td width="87">测试</td>
<td>中国大陆</td>
<td>吉林省四平市铁东区测试收货地址</td>
<td>123456</td>
<td class="td2">
<td class="td-a">
<span class="delBtn" style="cursor:pointer;" name="107">删除</span>
</td>
</tr>
</tbody>然后通过jquery发起一个ajax请求,删除一个地址,代码如下:$(".delBtn").click(function () {
        var parms = '{id:"' + $(this).attr("name") + '"}';
        $.ajax({
            type: "post",
            url: "Ajax/DeliveryAddress.aspx/DeleteDeliveryAddress",
            data: parms,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            beforeSend: function (XMLHttpRequest) { },
            success: function (data) {
                var result = eval(data.d)[0].result.toString();
                if (result = "删除成功") {
                    $(this).parent().parent().remove();
                }
                alert(eval(data.d)[0].result);
            },
            error: function (xhr, msg, e) { }
        });
    });

解决方案 »

  1.   

    经过单步调试,if条件为真,但却无法对该行进行删除,求指教
    var result = eval(data.d)[0].result.toString();
                    if (result = "删除成功") {
                        $(this).parent().parent().remove();
                    }
                    alert(eval(data.d)[0].result);
      

  2.   

    你再调试看看这个this等于什么
      

  3.   

    $(".delBtn").click(function () {
            var parms = '{id:"' + $(this).attr("name") + '"}';//要么是个xx=xx的字符串,要么是个JSON对象,你现在都不知道是个什么东西。你用firebug等看到参数发送正确?
            $.ajax({
                type: "post",
                url: "Ajax/DeliveryAddress.aspx/DeleteDeliveryAddress",//因为我没这个文件,所以我连你怎么错都不知道,你是数据库里面删不掉还是仅仅页面删不掉?
                data: parms,
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                beforeSend: function (XMLHttpRequest) { },
                success: function (data) {
                    var result = eval(data.d)[0].result.toString();//json对象还要eval?
                    if (result = "删除成功") {
                        $(this).parent().parent().remove();
                    }
                    alert(eval(data.d)[0].result);
                },
                error: function (xhr, msg, e) { }
            });
        });
      

  4.   

    好吧,如果只是这样,$(".delBtn").click(function () {
    var $this = $(this)
            var parms = '{id:"' + $this.attr("name") + '"}';
            $.ajax({
                type: "post",
                url: "Ajax/DeliveryAddress.aspx/DeleteDeliveryAddress",
                data: parms,
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                beforeSend: function (XMLHttpRequest) { },
                success: function (data) {
                    var result = eval(data.d)[0].result.toString();
                    if (result = "删除成功") {
                        $this.parent().parent().remove();////////
                    }
                    alert(eval(data.d)[0].result);
                },
                error: function (xhr, msg, e) { }
            });
        });
      

  5.   

    if (result = "删除成功") {
    应该是if (result == "删除成功") {
    否则总是true
    $(this)在代码块开头缓存一个变量试试
      

  6.   

    感谢大家参与,果然是$(this)变量发生了变化
    使用p2227在4楼的方法,问题解决了~~