我如何用`$ .post` jquery中的`this`对象实现父元素或最近元素

时间:2013-06-23 08:27:47

标签: jquery ajax

我如何在this jquery中使用$.post对象实现父元素。 我所看到的,当我将其记录为$(this)时,我会获得有关POST请求详细信息的信息。 如何使用thisany element对象来实现最近或父元素。

我知道,thisPOST请求中的对象,因此它会获取请求的详细信息。

HTML

<table>
<tr>
    <td><span class="remove-file-confirm" id="aa" file-name="whatsup"></span></td>
</tr>
<tr>
    <td><span class="remove-file-confirm" id="bb" file-name="gotstuck"></span></td>
</tr>
</table>

脚本

$(".remove-file-confirm").click(function(){

    var rconfirm = confirm("Are you sure, want to delete this file");

    if (rconfirm) {
        var rfileid = $(this).attr("id");
        var rfilecode = $(this).attr("file-name");

        $.post("ajx_delete_file.php", {fid:rfileid, fcd:rfilecode}, function(return_datad){
            if (return_datad == "good") {
                var k = $(this);
                //$(this).closest("<tr>").hide();
                console.log(k); // show information on post request
                // how can i achieve .remove-file-confirm nearest tr element
            } else {
                alert("Cannot delete this file");
                console.log(return_datad);
            }
        });

    }

});

2 个答案:

答案 0 :(得分:2)

试试这个

$('#'+rfileid).closest("tr").hide();

答案 1 :(得分:2)

您可以在元素范围内预先分配元素,如下所示。

在运行post之前指定变量:

var $parent = $(this).closest("tr")

然后在帖子中使用它:

$parent.hide();

完整代码:

$(".remove-file-confirm").click(function(){

    var rconfirm = confirm("Are you sure, want to delete this file");
    var $parent = $(this).closest("<tr>")
    if (rconfirm) {
        var rfileid = $(this).attr("id");
        var rfilecode = $(this).attr("file-name");

        $.post("ajx_delete_file.php", {fid:rfileid, fcd:rfilecode}, function(return_datad){
            if (return_datad == "good") {
                $parent.hide();
                //$(this).closest("<tr>").hide();
                console.log(k); // show information on post request
                // how can i achieve .remove-file-confirm nearest tr element
            } else {
                alert("Cannot delete this file");
                console.log(return_datad);
            }
        });

    }

});