我是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>
答案 0 :(得分:4)
DOM对象的onclick属性将函数作为参数,而不是字符串。在这种情况下,您需要使用JavaScript编写。
HTML中的onclick属性本身就是一个字符串(与所有XML属性一样),但它的处理方式不同,它由HTML解析器获得eval
。
请注意,您不需要包装功能。
document.getElementById("myBtn").onclick=displayDate;