当我单击成功从数据库中删除按钮ajax时,我想使用带有CI的ajax删除注释但是当它成功时,jquery remove函数无法正常工作并且我收到此错误
Uncaught TypeError: Cannot read property 'remove' of undefined
但当我检查我的数据库时,它已成功从数据库中删除 这是我的HTML代码。
<?php
if($this->session->userdata('u_id'))://session check s here
?>
<li role="presentation">
<a role="menuitem" tabindex="-1" href="javascript:void(0)" class="delete_comment" data-id="<?php echo $row->video_comment_id ?>" data-action="<?php echo site_url('videosd/deletecomment') ?>">
Delete
</a>
</li>
<?php endif
这是我的jQuery代码:
$('.delete_comment').click(function(){
var comment_id = $(this).data('id');
//alert(comment_id);
$.ajax({
url: $(this).data('action'),
type: 'POST',
data: {
comment_id:comment_id
},
success:function(data)
{
if (data == 'yes')
{
$(this).data('id').remove();
}
else
{
alert('somthing wrong please tell the admin')
};
},
error:function()
{
$('#user_serach').text('Some thing wrong..').css('color','red');
}
});//ajax ends here
});//delete comment ends here
这是我的控制器:
public function deletecomment()
{
$data['video_comment_id'] = $this->input->post('comment_id',TRUE);
$deletecomment = $this->mod_videosd->deletecomment($data);
if ($deletecomment)
{
echo 'yes';
}
else
{
echo 'not';
}
}
最后这是我的数据库:
public function deletecomment($data)
{
return $this->db->delete('video_comments',array('video_comment_id'=>$data['video_comment_id']));
}
请帮助我很困惑因为我不是jquery的专家。
答案 0 :(得分:0)
好的..我认为问题是你在.data() - 函数上使用了remove-function。 .data()只返回元素的值,但不返回元素本身。(https://api.jquery.com/jquery.data/) 我没有尝试过,但也许$(this).remove()应该可行。 如果你想删除整个div,你应该给div一个id。在回调函数中,您必须通过$(#1337)删除div .remove(); (没有.data())