0

嵌入了javascript的html

<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>
4

5 回答 5

1

您的脚本在文档被解析之前运行。
因此,getElementById返回 null。

将 移动<script>到底部。

于 2012-08-16T03:10:57.830 回答
1

“我有没有正确调用这个函数????”

您根本没有调用该displayatts()函数。将以下内容添加到脚本的末尾:

window.onload = displayatts;

一旦页面完成加载,这种方式displayatts()将被自动调用。反过来,它将在您的按钮上设置点击处理程序。

此外,</head>在开始标签之前包含结束<body>标签。

演示:http: //jsfiddle.net/nnnnnn/rxDXa/

于 2012-08-16T03:23:31.963 回答
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>
于 2012-08-16T03:36:20.003 回答
0
window.onload  =  displayatts;
于 2012-08-16T03:17:58.820 回答
0

将此代码粘贴到</body>页面中的标记之前。因此,您可以确定元素是否为空,或者代码在呈现 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>
于 2012-08-16T03:20:59.043 回答