如何在php传递的javascript中检索对象?

时间:2014-09-23 06:45:01

标签: javascript php jquery html ajax

我有一个删除图像的ajaxCall函数,如果操作成功完成,则调用另一个函数来删除显示图像的div

在传递给php的变量中,我尝试传递包含图像的div对象,并且在成功函数中我想要检索该对象以通过javascript删除它。但实际上我不知道是否有可能?!我有这个错误:TypeError: $object.parent is not a function

这是我的代码:

HTML

<div>
    <input type="hidden" name="imageID" id="imageID" value="1">
    <a href="#">
        <img src="a.jpg" alt="">
    </a>
    <a class="del-btn-pic" href="#">Delete</a>
</div>

的JavaScript

    $(document).on("click",".del-btn-pic", function () {
        $this = $(this);
        var imageID = $this.parent().children('input').val();
        var divObject = JSON.stringify($this);
        ajaxCall('deleteImage', {object:divObject , imageID:imageID }, removeImageVisual)
    });
function removeImageVisual(data) // -> This function after ajaxCall is called. the php code in success returns the div object which passed before, and in failure returns 0.
{
    if(data != 0)
    {
        $divObject = JSON.parse(data);
        $divObject.parent().remove();
    }
    else
    {
        alert('Error!');
    }
}

2 个答案:

答案 0 :(得分:0)

而不是传递你应该传递a标签的选择器,以便您可以按照以下方式使用。

var selector = JSON.parse(data);
$(selector).parent().remove();

答案 1 :(得分:0)

你想要做的是在点击删除后删除div,但你不必将它发送到php并返回JS,因为当你从php返回时是重复的,只需这样做:

$(document).on("click",".del-btn-pic", function () {
        $this = $(this);
        var imageID = $this.parent().children('input').val();
        //var divObject = JSON.stringify($this); not needed
        ajaxCall('deleteImage', {object:"" , imageID:imageID }, function(data) {
             removeImageVisual(data,imageID);
        });
    });


function removeImageVisual(data,imageID) 
{
    if(data != 0)
    {
        $('#' + imageID).parent().remove();
    }
    else
    {
        alert('Error!');
    }
}