这么写,点击链接时,链接会变成粉色,并且输出 over<html>
<head>
<script type="text/javascript">
function f()
{
this.style.color = "pink";
alert("over");
}
</script>
</head>
<body>
<a href="#" id="hrf" >测试链接</a>
<script type="text/javascript">
document.getElementById("hrf").onclick = f;
</script>
</body>
</html>
可是把最后那段动态添加事件的js代码去掉,直接将事件处理写在标签上,就不能正常运行了,点击链接会报错。请问第二种写法错在哪里?
===错误代码===<html>
<head>
<script type="text/javascript">
function f()
{
this.style.color = "pink";
alert("over");
}
</script>
</head>
<body>
<a href="#" id="hrf" onclick="f();">测试链接</a>
</body>
</html>
<head>
<script type="text/javascript">
function f()
{
this.style.color = "pink";
alert("over");
}
</script>
</head>
<body>
<a href="#" id="hrf" >测试链接</a>
<script type="text/javascript">
document.getElementById("hrf").onclick = f;
</script>
</body>
</html>
可是把最后那段动态添加事件的js代码去掉,直接将事件处理写在标签上,就不能正常运行了,点击链接会报错。请问第二种写法错在哪里?
===错误代码===<html>
<head>
<script type="text/javascript">
function f()
{
this.style.color = "pink";
alert("over");
}
</script>
</head>
<body>
<a href="#" id="hrf" onclick="f();">测试链接</a>
</body>
</html>
解决方案 »
- jquery的ajax访问servlet 如何从后台传值回来
- 如何用JavaScript传递参数
- ext autoload 加载一个panel的问题
- 怎样用<table datasrc="#XmlDataSource"绑定深一层的Xml数据呢?
- 再问:如何从checkbox和select下拉list中读取信息,并用于查询数据库呢? (撒分,不够另补)
- CSDN(类似新浪博客、网易等)的回复功能的实现
- input的搜索功能
- ★★★★★如何在html中对一个文件分页显示信息?
- 文件读取~
- 想问问各位一个nginx的问题,关于nginx播放flv的功能
- 用html和JavaScript写页面有刷新一次页面,页面上显示加一的功能怎么实现?
- JavaScript中用<!-- //-->是什么意思啊
<html>
<head>
<script type="text/javascript">
function f(obj)
{
obj.style.color = "pink";
alert("over");
}
</script>
</head>
<body>
<a href="#" id="hrf" onclick="f(this);">测试链接</a>
</body>
</html>第一种情况this表示a标签这个对象,这二种情况this代表window对象
<html>
<head>
<script type="text/javascript">
function f(a)
{
a.style.color = "pink";
alert("over");
}
</script>
</head>
<body>
<a href="#" id="hrf" onclick="f(this);">测试链接</a>
</body>
</html>
因为它找不到当前元素,你传进去一个this就成了,代表当前元素
可是在我的错误代码中onclick="f()"方法体里的this却不代表超链接对象呢?
this代表当前对象~·也就是超链接对象~`因为你得给它传递参数~`把this传进去~·f()方法才能找到~`