简体   繁体   English

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

[英]Uncaught TypeError: Cannot set property 'src' of undefined

I know this was asked before but none of the answers given fixed my problem. 我知道之前曾问过这个问题,但是给出的答案都没有解决我的问题。 Obviously a lot of people are getting the same errors with Chrome and Safari so I think an answer with an explanation would be benafitial if at all possable. 显然,很多人在使用Chrome和Safari时遇到同样的错误,因此,我认为,如果有可能,给出解释性的答案将是有益的。 My JavaScript teacher never taught only led us down the wrong path and said to forget that so I don't understand the code I have but I have to get it working in all browsers. 我的JavaScript老师从来没有教过,只会导致我们走错了路,并说忘记了这一点,所以我不理解所拥有的代码,但必须使它在所有浏览器中都能正常工作。

Here is my code: 这是我的代码:

<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>  

Please HELP!! 请帮忙!!

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

You can't just use an element's name in Javascript. 您不能只在Javascript中使用元素的名称。 You must get the DOM object corresponding to that element: 您必须获取与该元素对应的DOM对象:

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

You can't change the src like that. 您不能像这样更改src。 Instead use: 而是使用:

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

Here is the simplest form of it :) 这是它的最简单形式:)

<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> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM