好的,这是我的jQuery:
$.ajax({
type: "POST",
url: $(this).attr('href')
}).done(function( msg ) {
$(this).parent().closest('p').html('Image Removed');
});
这是我的HTML:
<div id="gallery">
<? foreach($galleryImages as $image) { ?>
<div id="<?php echo $image['id'] ?>" class="box">
<img src="<?php echo $fileHandler->get_thumb(__LISTING_GALLERY__.$image['image']) ?>" alt="Gallery Image" class="gallery-image" /><br />
<p class="text-right"><a href="<?php echo __BASE_URL__.'/installers/dash/delete_gallery.php?id='.$image['id'] ?>" class="confirmation"><i class="fa fa-times"></i> Delete</a></p>
</div>
<? } ?>
</div>
自数据库更改以来,ajax工作正常。 但是,完成功能无法正常工作。
我提醒了$(this).parent().closest('p').html()
,它会提醒当前的div有html。但是,它不会被&#39;图像删除&#39;覆盖它。我正在输入。
答案 0 :(得分:7)
this
不是元素,因为有一个新的函数范围
var elem = this;
$.ajax({
type: "POST",
url: $(this).attr('href')
}).done(function( msg ) { // new function scope, "this" is now the XHR function
$(elem).parent().closest('p').html('Image Removed');
});
答案 1 :(得分:1)
使用ajax上下文选项:
$.ajax({
type: "POST",
url: $(this).attr('href'),
context:this
}).done(function( msg ) {
$(this).parent().closest('p').html('Image Removed');
});