0

我在一个页面上有一堆表单,允许用户编辑每个表单的信息。表单的输入之一是图像上传。

表格如下:

<form class="myForm" ...>
    <div class="imagePreview"></div>
    <input type="file" name="myImage" onchange="handleFiles(this.files)" />
</form>

我有 javascript 来处理图像预览,如下所示:

function handleFiles(files) {
    $(".obj").remove();
    for (var i = 0; i < files.length; i++) {
        var file = files[i];
        var imageType = /image.*/;

        if (!file.type.match(imageType)) {
            continue;
        }

        var pic_div = document.getElementById("imagePreview");
        var img = document.createElement("img");
        img.classList.add("obj");
        img.file = file;
        pic_div.appendChild(img);

        var reader = new FileReader();
        reader.onload = (
            function(aImg) { 
                return function(e) { 
                    aImg.src = e.target.result; 
                }; 
            }
        )(img);
        reader.readAsDataURL(file);
    }
}

我想换行:

var pic_div = document.getElementById("imagePreview");

用适当的线。这就是我感到困惑的地方。我不知道如何为 myForm 类的 THIS FORM 引用“imagePreview”类的 div。

任何帮助深表感谢。

4

1 回答 1

1

问题是你得到了带有 IdimagePreview的 div ,当表单中的 div 有imagePreviewCSS 类时,你可以做的就是给 div 所需的 id,而不是像这样:

<div id="imagePreview"></div>

或者,如果您将有多个具有相同类的 div,则使用 jQuery 获取它们,如下所示:

$(".imagePreview").each(function(index){
    //Do Something
});

或者:

var pic_div = $(".imagePreview")[0]
于 2013-03-08T20:16:52.860 回答