在javascript / jquery中传递变量

时间:2011-08-15 17:42:59

标签: javascript jquery variables

我已按照以下链接为我自己的脚本实现了示例。

Preview an image before it is uploaded

我有8个文件上传输入,后跟一个自己的img标签

<input type="file" name="file[]" accept="image/gif,image/jpeg" onchange="readURL(this,1);"/>
<img id="imagediv1" src="#" alt="your image" />

现在我修改了javascript

function readURL(input,cnum) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            var cimage = 'imagediv'+cnum;
            reader.onload = function (e) {
                $("#cimage")
                    .attr('src', e.target.result)
                    .width(150)
                    .height(200);
            };

            reader.readAsDataURL(input.files[0]);
  }     }
}

我做了警告();在javascript中,cimage var确实正确创建。 但是,img不会像在示例中那样改变。我确实尝试为每个imagediv#手动创建一个函数,它工作正常。

我错过了javascript中的内容吗?

2 个答案:

答案 0 :(得分:1)

你需要从引号中取出“cimage”,而是将其连接到“#”:

$("#"+cimage)

或者,更好的是,根本不需要创建cimage变量,只需执行此操作:

$("#imagediv" + cnum)

答案 1 :(得分:0)

更改您的选择器:

$("#" + cimage).attr("src", e.target.result).width(150).height(200);

您的选择器$("#cimage")正在寻找id="cimage"的元素。