出于某种原因,我在第7行遇到document.getElementById('id') is null
JS错误,并带有以下标记和脚本:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Quadratic Root Finder</title>
<script>
document.getElementById('calculate').onclick = function calculateQuad()
{
var inputa = document.getElementById('variablea').value;
var inputb = document.getElementById('variableb').value;
var inputc = document.getElementById('variablec').value;
root = Math.pow(inputb,2) - 4 * inputa * inputc;
root1 = (-inputb + Math.sqrt(root))/2*inputa
root2 = (-inputb + Math.sqrt(root))/2*inputa
document.getElementById('root1').value = root1;
document.getElementById('root2').value = root2;
if(root<'0')
{
alert('This equation has no real solution.')
}
else {
if(root=='0')
{
document.getElementById('root1').value = root1
document.getElementById('root2').value = 'No Second Answer'
}
else {
document.getElementById('root1').value = root1
document.getElementById('root2').value = root1
}
}
};
document.getElementById('erase').onlick = this.form.reset();
</script>
<style>
#container
{
text-align: center;
}
</style>
</head>
<body>
<div id="container">
<h1>Quadratic Root Finder!</h1>
<form id="form1">
a:<input id="variablea" value="" type="text">
<br/>
b:<input id="variableb" value="" type="text">
<br />
c:<input id="variablec" value="" type="text">
<br />
<input id="calculate" value="Calculate!" type="button">
<input id="erase" value="Clear" type="button">
<br />
<br />
Roots:
<br />
<input id="root1" type="text" readonly>
<br />
<input id="root2" type="text" readonly>
</form>
</div>
</body>
</html>
这里真正的问题是什么?
答案 0 :(得分:6)
确实是null
。您的元素尚未存在于页面上。
或者:
<script>
块window.onload
活动。答案 1 :(得分:2)
如果您不想包含jQuery,那么document.ready = function () {}
也可以正常工作。
答案 2 :(得分:2)
或者:window.onload = function(){}
也适用
答案 3 :(得分:0)
在实际运行javascript时,没有id为“calculate”的元素。您需要确保在创建所需元素后运行javascript。我的建议是使用像jquery这样的通用javascript框架。然后,您只需附加脚本即可在dom上运行:
$(document).ready(function() {
// Handler for .ready() called.
});
答案 4 :(得分:0)
您可以通过将脚本移动到正文末尾来修复它,或者尝试使用window.onload
或window.addEventListenner
检查http://v3.thewatchmakerproject.com/journal/168/javascript-the-dom-addeventlistener-and-attachevent
和http://javascript.about.com/library/blonload.htm
答案 5 :(得分:0)