我有一个删除图像的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!');
}
}
答案 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!');
}
}