HTML元素没有在Javascript中定义

时间:2014-04-01 18:38:12

标签: javascript html

我有一个html元素:

<img alt="" src="../Images/ERROR.jpg" id="live1x4" height="288" style="width: 360px;
                                                display: block;" /

如果我在javascript中引用此控件,该控件位于同一个html页面中:

live1x4.src = src;

其中src是脚本工作的图像位置。

如果将javascript移动到外部js文件我得到'live1x4'是未定义的。

仅在Internet Explorer中发生。

Wjat可能导致此错误?

2 个答案:

答案 0 :(得分:1)

您必须定位元素,而不是简单地引用ID:

document.getElementById("live1x4").src  = ....

答案 1 :(得分:0)

原因是JavaScript代码在解析img元素之前执行。这是否发生取决于许多事情。有不同的方法可以确保它不会发生。一种简单的方法是将代码包装在加载文档后触发的偶数处理程序中:

window.onload = function() {
   // your code here, here all elements are available, e.g.:
   live1x4.src = src;
}

通常认为使用id属性值的错误编码样式就像它们是全局变量一样(部分原因是它们在添加了同义全局变量时停止工作),因此document.getElementById("live1x4")优于live1x4 1}}。但是,这是一个不同的主题。