未捕获的类型错误:无法设置未定义的属性'src'
问题描述:
我知道这是之前问过的,但没有给出任何答案来解决我的问题。很显然,很多人都在使用Chrome和Safari获得同样的错误,所以我认为如果可能的话,一个解释的答案将是合适的。我的JavaScript老师从来没有教过我们只会导致我们错误的道路,并说忘记,所以我不明白我有的代码,但我必须让它在所有浏览器中工作。未捕获的类型错误:无法设置未定义的属性'src'
这里是我的代码:
<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>
请帮助!
答
document.getElementById("preview").src = "img1.jpg";
答
您不能在Javascript中使用元素的名称。您必须获取与该元素对应的DOM对象:
onmouseover="document.getElementById('preview').src=this.src"
+0
不幸的是,IE为具有ID的元素创建全局变量。 –
答
您不能更改那样的src。而是使用:
document.getElementById('preview').src=....
这里是它最简单的形式:)
答
<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>
替换'preview.src'与'的document.getElementById( “预览”)src',看看有没有什么帮助。当然,统一的功能会更好。 – Blazemonger
下面是正确的路径:[MDN JavaScript指南](https://developer.mozilla.org/en/JavaScript/Guide) –