jquery 查找下一个 class

jquery find next class

在 foreach 循环中,我有几个 html 块,如下所示:

<label class="">Replace image/poster:</label>
<input type="file" name="replaced_main_image" class="form-control-file-border input-image-preview" />                   
                
<!-- preview replaced main image -->
<br />
<label class="">Preview replaced image/poster:</label><br />
<img class="image-preview" width="100" src="#" /> <!-- preview image -->

要预览刚刚选择的要上传的图片,我使用此代码:

// preview new selected image 
function readURL(input) {
  if (input.files && input.files[0]) {
    var reader = new FileReader();    
    reader.onload = function(e) {
      $('.image-preview').attr('src', e.target.result);
    }    
    reader.readAsDataURL(input.files[0]); // convert to base64 string
  }
}
$(".input-image-preview").change(function() {
 readURL(this);

});

这很好用,但在这种情况下,每个带有 class img-preview 的 img 都会获取源代码。我只想要 class img-preview.

的下一个 img

据我所知,我必须更改函数中的一行,看起来应该类似于:

 reader.onload = function(e) {
      find next --> $('.image-preview').attr('src', e.target.result);
    }

我不知道正确的语法是什么....

这里:

$(input).nextAll('.image-preview').eq( 0 ).attr('src', e.target.result);

使用 input 作为传递给函数的源,然后找到所有下一个 .image-preview 并使用 .eq( 0 )

将其限制为第一个