[JavaScript]eachメソッドなどで複製したフォームを特定する方法 : プレビュー機能(JavaScript)の実装のお話です。 もっと良い方法があるかもしれませんが、 初学者の一つのやり方として大目に見てください。 問題 このような3つ連なった画像投稿フォームがあったとします。 このフォームはtimesメソッドで li.list-group-item の複製で出来ています。 ## new.html.haml - 3.times do |i| %li.list-group-item.col-md-4 .image-upload = f.fields_for :captured_images do |image| %img.s-preview = image.file_field = image.hidden_field これに、JavaScriptでプレビュー機能を追加したいと考えました。 ## preview.js $(function(){ $('.sub_image_uploader').change(function(e){ var file = e.target.files[0]; var reader = new FileReader(); if(file.type.indexOf("image") < 0){ alert("画像ファイルを指定してください。"); return false; } reader.onload = (function(file){ return function(e){ $(.s-preview).attr("src", e.target.result); $(.s-preview).attr("title", file.name); }; })(file); reader.readAsDataURL(file);...