0

我在我的 ASp.Net 应用程序中上传了带有 ajax 形式的图像。我需要刷新图像,所以我试试这个:

$(function () {
   $(".fileUploadForm").ajaxForm({
      success: function (data, text, xhr, form) {
       var tmp = jQuery(this).closest("img[class=imageResource]").attr('src');
      }
   });
});

这是我的图像:

 <img class="imageResource" alt="picture" src="@Url.Action("Picture", new { id = Model.Id })" />

如何查找和重写具有相同名称的图像源

更新

这是我的html:

<div class="thumbnail">
<a target="_blank" href="/Template/OriginalPicture/8b8c824b-9605-4931-9fe2-1f5979baca42">
<img class="imageResource" src="/Template/Picture/8b8c824b-9605-4931-9fe2-1f5979baca42" alt="picture">
</a>
<div class="caption">
<div style="margin-bottom: 5px;">
<form class="form-horizontal fileUploadForm" method="post" enctype="multipart/form-data" action="/Template/PictureResource?resourceId=8b8c824b-9605-4931-9fe2-1f5979baca42&configId=aa383b5a-23b2-4780-965e-ef4e95cd3fa2&pageNumber=1">
<div class="input-append">
<input type="file" name="picture">
<input class="span1" type="text" size="128" style="width: 86px;">
<button class="btn browse" type="button"> ...</button>
<button class="btn" type="submit">Upload</button>
</div>
</form>
</div>
</div>
4

1 回答 1

1

试试这个代码:

$(function () {
   $(".fileUploadForm").ajaxForm({
      success: function (data, text, xhr, form) {
       var tmp = form.closest('.thumbnail').find('.imageResource').attr('src');
        form.closest('.thumbnail').find('.imageResource').attr('src', tmp + "?" + (new Date()).getTime());
      }
   });
});

我不确定 jQuery(this) 是否会返回一个表单(不记得那里的“this”是什么) (new Date()).getTime()——只是为了更改图像 URL 并强制浏览器不从缓存中获取图像。呃。并没有注意到.closest- 它会搜索最近的父元素,而不是子元素。你可以用.find它。

form- 这是一个电流来源,根据文档closest('.thumbnail')将找到最接近表单的类 .thumbnail 的父级。.find('.imageResource')将搜索imageResource仅在内部具有类的元素.thumbnail。由于缩略图内只有一个带有 imageResource 类的图像标签 - 上面的代码应该可以正常工作

于 2012-09-11T14:19:36.670 回答