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

在javascript中将函数附加到onclick事件,javascript,html,Javascript,Html,我是javascript新手,仍然对javascript的一些语法感到困惑,下面是一个示例: 我希望我的html显示日期每当按钮点击 问题一:为什么要将第一个代码更改为第二个以使其工作 document.getElementById("myBtn").onclick="displayDate()"; ---它让我感到困惑的原因是,当我们将脚本直接添加到某个元素中时,像onclick=changetext这样的语法效果很好 问题2:对于这两种不同的情况,我们应该使用不同的语法,有什么具体的

我是javascript新手,仍然对javascript的一些语法感到困惑,下面是一个示例: 我希望我的html显示日期每当按钮点击

问题一:为什么要将第一个代码更改为第二个以使其工作

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

---它让我感到困惑的原因是,当我们将脚本直接添加到某个元素中时,像onclick=changetext这样的语法效果很好

问题2:对于这两种不同的情况,我们应该使用不同的语法,有什么具体的原因吗

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

DOM对象的onclick属性将函数作为其参数,而不是字符串。在本例中,您使用的是JavaScript

HTML中的onclick属性本身就是一个字符串,就像所有XML属性一样,但它的处理方式不同,它会被HTML解析器求值

请注意,您不需要包装函数

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