我正在尝试显示来自文件输入的图像的 ajax 预览。使用 FileReader() 很容易,但我将它与循环一起使用,所以当我需要将结果放在图像源中时,我需要使用 $(this) 来定位输入的循环项。这对我来说甚至没有意义,所以我们开始吧。
我们有一个循环..
<li>
<input type="file" class="image" />
<img src="" class="preview" />
</li>
<li>
<input type="file" class="image" />
<img src="" class="preview" />
</li>
<li>
<input type="file" class="image" />
<img src="" class="preview" />
</li>
所以现在假设选择了第二个输入,现在我需要将 FileReader 的结果添加到它的图像 src。我如何定位第二个循环项目及其内容来做事?
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
// Here I need to use $(this) to target only the second list item's img.preview
$('.preview').attr('src', e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}