为什么我不能使用jQuery来定位图像元素

时间:2013-12-22 13:26:25

标签: jquery

我正在尝试添加jQuery以使用我的网站,这是我第一次进入jQuery。出于某种原因,我无法让它工作,我不确定为什么。调试输出中没有错误。这是我正在使用的确切代码:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
<script>
$(document).ready(function(){
function readURL(input) {
        if (input.files && input.files[0]) {
        var reader = new FileReader();

            reader.onload = function (e) {
                $('#Preview1').attr('src', e.target.result);
            }

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

    $("#Image1").change(function(){
        readURL(this);
        alert("triggered");
    });
});
</script>
</head>
<body>
<form>
<input type="file" id="#Image1">
<img src="#" id="Preview1">
</form>
</html>

它适用于jsfidle,但是当我在chrome或firefox中尝试它时。到目前为止我看到的所有答案都很简单,把它放在document.ready函数中,或者你丢失了分号或错误输入了URL。如果我有这个,我只是没有发现它。它也不适用于谷歌最新版本的jQuery。

1 个答案:

答案 0 :(得分:10)

#

id属性中删除input

更改

 <input type="file" id="#Image1">

 <input type="file" id="Image1">

或者

使用\\转义#

 $("#\\#Image1").change(function () {
    alert("triggered");
 });

Fiddle DEMO

来自Docs

  

使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\\。