<html>
<head>
<title>Example</title>
<script type ="text/javascript">
我正确地调用了这个函数????
function displayatts()
{
document.getElementById("buttonone").onclick = saysomething;
}
这里有什么问题???
function saysomething()
{
alert("I am 28 years old");
}
</script>
<body>
<input type="button" id="buttonone" value="me" >
</body>
</head>
</html>
答案 0 :(得分:1)
您的脚本在解析文档之前运行
因此,getElementById
返回null。
将<script>
移到底部。
答案 1 :(得分:1)
“我是否正确调用了这个函数????”
您根本没有调用displayatts()
功能。将以下内容添加到脚本的末尾:
window.onload = displayatts;
一旦页面加载完毕,将自动调用displayatts()
。反过来,它会在你的按钮上设置点击处理程序。
此外,请在开始</head>
代码之前添加结束<body>
代码。
答案 2 :(得分:1)
这肯定会奏效。 如果你想要测试它。 将以下代码复制并粘贴到W3Schools测试环境中,“编辑并单击我”进行测试。
http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_iframe
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<script type ="text/javascript">
function saysomething()
{
alert("I am 29 years old");
}
function displayatts()
{
document.getElementById("buttonone").onclick = saysomething;
}
</script>
<body onload="displayatts();">
<input type="button" id="buttonone" value="me" >
</body>
</head>
</html>
答案 3 :(得分:0)
window.onload = displayatts;
答案 4 :(得分:0)
将此代码粘贴到页面中的</body>
标记之前。因此,您可以确定元素是否为null,或者代码在呈现html元素之前尝试工作。
希望这有助于你的情况..
<script>
var element = document.getElementById("buttonone");
if(element){
element.setAttribute("onclick", "saysomething();");
}else
{
alert("element null, move the code to bottom or check element exists");
}
</script>