未捕获的TypeError:无法设置未定义的属性'src'

时间:2011-08-29 17:26:20

标签: javascript

我知道之前有人问过,但没有一个答案解决我的问题。显然很多人都在使用Chrome和Safari获得相同的错误,所以我认为如果可能的话,一个解释的答案就会变得非常好。我的JavaScript老师从来没有教过只带领我们沿着错误的道路走下去并说忘记了,所以我不理解我的代码,但我必须让它在所有浏览器中运行。

这是我的代码:

<div class="gallery" align="center">
<h3>Simple and Effective Photo Gallery with HTML and JavaScript</h3><br/>
<div class="thumbnails">
<img onmouseover="preview.src=img1.src" id="img1" src="img1.jpg" alt="Image Not Loaded"/>
<img onmouseover="preview.src=img2.src" id="img2" src="img2.jpg" alt="Image Not Loaded"/>
<img onmouseover="preview.src=img3.src" id="img3" src="img3.jpg" alt="Image Not Loaded"/>
<img onmouseover="preview.src=img4.src" id="img4" src="img4.jpg" alt="Image Not Loaded"/>
<img onmouseover="preview.src=img5.src" id="img5" src="img5.jpg" alt="Image Not Loaded"/>
<img onmouseover="preview.src=img6.src" id="img6" src="img6.jpg" alt="Image Not Loaded"/>
</div><br/>
<div class="preview" align="center">
<img id="preview" src="img1.jpg" alt="No Image Loaded"/>
</div>
</div>  

请帮助!!

4 个答案:

答案 0 :(得分:3)

document.getElementById("preview").src = "img1.jpg";

答案 1 :(得分:2)

您不能只在Javascript中使用元素的名称。您必须获取与该元素对应的DOM对象:

onmouseover="document.getElementById('preview').src=this.src"

答案 2 :(得分:1)

你不能像那样改变src。而是使用:

document.getElementById('preview').src=.... 

以下是最简单的形式:)

答案 3 :(得分:0)

<script>
var prev;
function setPrev(img) {
prev = prev || document.getElementById('preview');
prev.src = img.src;
return false;
}
</script>    
<div class="gallery" align="center">
<h3>Simple and Effective Photo Gallery with HTML and JavaScript</h3><br/>
    <div class="thumbnails">
      <img onmouseover="setPrev(this)" id="img1" src="img1.jpg" alt="Image Not Loaded"/>
      <img onmouseover="setPrev(this)" id="img2" src="img2.jpg" alt="Image Not Loaded"/>
      <img onmouseover="setPrev(this)" id="img3" src="img3.jpg" alt="Image Not Loaded"/>
      <img onmouseover="setPrev(this)" id="img4" src="img4.jpg" alt="Image Not Loaded"/>
      <img onmouseover="setPrev(this)" id="img5" src="img5.jpg" alt="Image Not Loaded"/>
      <img onmouseover="setPrev(this)" id="img6" src="img6.jpg" alt="Image Not Loaded"/>
    </div>
    <br/>
    <div class="preview" align="center">
    <img id="preview" src="img1.jpg" alt="No Image Loaded"/>
    </div>
   </div>