jquery - 在 HTML 表单上预览不同的图像

标签 jquery html

我有一个 HTML 表单,其中包含多个用于上传图片的输入。单击“选择文件”按钮后,我需要预览每张图片:

$(function() {
  $("#img1").change(function() {
    if (this.files && this.files[0]) {
      var reader = new FileReader();
      reader.onload = imageIsLoaded;
      reader.readAsDataURL(this.files[0]);
    }
  });
});

function imageIsLoaded(e) {
  $('#myImg1').attr('src', e.target.result);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td> <input id="img1" name="img1" type="file" /> </td>
    <td> <img id="myImg1" src="#" alt="your image" /> </td>
  </tr>
  <tr>
    <td> <input id="img2" name="img2" type="file" /> </td>
    <td> <img id="myImg2" src="#" alt="your image" /> </td>
  </tr>
  <tr>
    <td> <input id="img3" name="img3" type="file" /> </td>
    <td> <img id="myImg3" src="#" alt="your image" /> </td>
  </tr>
</table>

提前致谢!

最佳答案

要实现这一点,您可以在所有文件输入和 img 元素上放置通用类。从那里您可以使用 DOM 遍历找到与输入相关的 img 并在选择文件时更新它的 src 属性。试试这个:

$(function() {
  $('.img').change(function() {
    if (this.files && this.files[0]) {
      var $view = $(this).closest('tr').find('.view');
      var reader = new FileReader();
      reader.onload = function(e) {
        $view.attr('src', e.target.result);
      }
      reader.readAsDataURL(this.files[0]);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td><input id="img1" name="img1" type="file" class="img" /> </td>
    <td><img id="myImg1" src="#" alt="your image" class="view" /> </td>
  </tr>
  <tr>
    <td><input id="img2" name="img2" type="file" class="img" /> </td>
    <td><img id="myImg2" src="#" alt="your image" class="view" /> </td>
  </tr>
  <tr>
    <td><input id="img3" name="img3" type="file" class="img" /> </td>
    <td><img id="myImg3" src="#" alt="your image" class="view" /> </td>
  </tr>
</table>

关于jquery - 在 HTML 表单上预览不同的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42672822/

相关文章:

html - iframe-thankyoupage

html - div 高于绝对 div 和溢出

jQuery Ready() 问题 - $(this) 不可用且代码仅适用于一个元素

javascript - 邮政信箱正则表达式验证

html - Bootstrap - 如何在浏览器缩小时保持图像居中

javascript - 如何在翻转的 div 上正确处理鼠标悬停?

html - 将图像与基线对齐

javascript - 目标事件的 jQuery 选择器?

jquery - 在多个元素上使用 jQuery 的 .val()

javascript - 如何显示评分星级 Laravel 和 Ajax