<html>
<head>
<script type="text/javascript">
var image = document.getElementById(image);
var desc = document.getElementById(desc);
var images = ["http://i.imgur.com/XAgFPiD.jpg", "http://i.imgur.com/XAgFPiD.jpg"]
var descs = ["1", "2"]
var num = 0;
var total = images.length;
function clicked(){
num = num + 1;
if (num > total){
num = 0;
}
image.src = images[num];
desc.innerHTML = images[num];
}
document.getElementById(submit).onclick(clicked());
</script>
</head>
<body>
<div><h2>Project |</h2><h2> | herbykit</h2></div>
<div>
<button id="submit">Next</button><br/>
<img id="image" src="http://i.imgur.com/XAgFPiD.jpg" height="20%" width="50%"/>
<p id="desc">first desc.</p>
</div>
</body>
</html>
“document.getElementById(submit).onclick(clicked());”抛出错误 “ReferenceError:未定义提交”
当我尝试访问按钮时
[通过getElementsByClassName&amp;的getElementsByTagName]
它给出了错误“ReferenceError:button is not defined”
在getElementById中使用字符串会抛出错误“getElementById为null”
我发现了几个问题和答案。
由于使用了PHP而且其他大多数错误都是错误的,因此我只了解了其中的一个。我发现的其他解决方案涉及数字错误。 在这个错误上,我尝试修复printwindow.document.getElementById(..等 这给了我一个错误“ReferenceError:printwindow is not defined”
答案 0 :(得分:1)
浏览器会尽快运行JavaScript以加快渲染速度。所以当你收到这段代码时:
<html>
<head>
<script type="text/javascript">
var image = document.getElementById(image); // Missing quotes, typo?
......在中间运行。页面上还没有<foo id="image">
,因此您获得null
。最后,您将获得呈现的其余页面,包括:
<img id="image" src="http://i.imgur.com/XAgFPiD.jpg" height="20%" width="50%"/>
你的代码很久以前就已经运行了,为时已晚。
你需要绑定一个window.onload甚至处理程序并在DOM准备就绪时运行你的代码(或者将所有JavaScript移到页面底部,在图片之后)。
答案 1 :(得分:1)
您在渲染“正文”之前执行了javascript。因此document.getElementById(“submit”)将返回null。因为还没有“提交”DOM元素。
一种解决方案是将你的javascripts移动到'body'下,或者使用JQuery with
$(document).ready(function() {
...
});
您的变量也有范围问题,您的函数无法使用'var'声明访问此函数外部声明的变量。如果你真的需要那个变量,你应该删除'var'声明。 更好的方法是将所有变量移动到单击的函数中。喜欢以下代码
<html>
<head>
</head>
<body>
<div><h2>Project |</h2><h2> | herbykit</h2></div>
<div>
<button id="submit">Next</button><br/>
<img id="image" src="http://i.imgur.com/XAgFPiD.jpg" height="20%" width="50%"/>
<p id="desc">first desc.</p>
</div>
</body>
<script type="text/javascript">
function clicked(){
var image = document.getElementById("image");
var desc = document.getElementById("desc");
var images = ["http://i.imgur.com/XAgFPiD.jpg", "http://i.imgur.com/XAgFPiE.jpg"];
var descs = ["1", "2"];
var num = 0;
var total = images.length;
num = num + 1;
if (num > total){
num = 0;
}
image.src = images[num];
desc.innerHTML = images[num];
}
document.getElementById("submit").onclick = clicked;
</script>
</html>
答案 2 :(得分:0)
应为document.getElementById('submit').onclick(clicked());
答案 3 :(得分:0)
您必须在引号中附上您要搜索的ID:
document.getElementById('ID_to_look_up');