在javascript中将函数附加到onclick事件

时间:2014-11-01 04:38:07

标签: javascript html

我是javascript的新手,仍然混淆了一些关于javascript的语法,下面是一个例子: 只要按下按钮

,我想要我的html显示日期

问题一:为什么要将第一个代码更改为第二个才能使其正常工作?

 document.getElementById("myBtn").onclick="displayDate()";

document.getElementById("myBtn").onclick=function(){displayDate()};

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<p>click to execute <em>displayDate()</em> 。</p>

<button id="myBtn">PUSH ME !</button>

<script>
document.getElementById("myBtn").onclick="displayDate()";
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>

<p id="demo"></p>

</body>
</html> 

-----它让我困惑的原因是我们将脚本直接添加到某个元素中,语法如onclick =&#34; changetext(this)&#34;工作正常。

问题2:为了解决这两种不同情况的语法,有什么特别的原因吗?

<!DOCTYPE html>
<html>
<head>
<script>
function changetext(id)
{
id.innerHTML="Thanks!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)">Push me</h1>
</body>
</html>

1 个答案:

答案 0 :(得分:4)

DOM对象的onclick属性将函数作为参数,而不是字符串。在这种情况下,您需要使用JavaScript编写。

HTML中的onclick属性本身就是一个字符串(与所有XML属性一样),但它的处理方式不同,它由HTML解析器获得eval

请注意,您不需要包装功能。

document.getElementById("myBtn").onclick=displayDate;