我的目的是:点第一个链接弹出一个1,点第二个链接弹出一个2,依次类推,可是我不管点哪个都弹3,大家帮忙看一下是为何···
代码如下:
<html>
<head>
<script type="text/javascript">
window.onload=function ()
{
var link=document.getElementsByTagName('a');
var c=document.getElementById('place');
for(var i=0;i<link.length;i++)
{
j=i+1;
link[i].onclick=function()
{
alert(j);
return false;
}
}
}
</script>
</head>
<body>
<h1>TEST</h1>
<ul>
<li><a href="#">链接1</a></li>
<li><a href="#">链接2</a></li>
<li><a href="#">链接3</a></li>
</ul>
</body>
</html>
代码如下:
<html>
<head>
<script type="text/javascript">
window.onload=function ()
{
var link=document.getElementsByTagName('a');
var c=document.getElementById('place');
for(var i=0;i<link.length;i++)
{
j=i+1;
link[i].onclick=function()
{
alert(j);
return false;
}
}
}
</script>
</head>
<body>
<h1>TEST</h1>
<ul>
<li><a href="#">链接1</a></li>
<li><a href="#">链接2</a></li>
<li><a href="#">链接3</a></li>
</ul>
</body>
</html>
for(var i=0;i<link.length;i++)
{
j=i+1;
link[i].j=j;
link[i].onclick=function()
{
alert(this.j);
return false;
}
}
方案2 eval 这个不用我说了吧..
jquery:
$(document).ready(function() {
var i = 1;
$("a").bind("click", function() {
alert(i++);
});
});
<head>
<script type="text/javascript">
window.onload=function ()
{
var link=document.getElementsByTagName('a');
var c=document.getElementById('place');
for(var i=0;i<link.length;i++)
{
j=i+1;
link[i].onclick=function(j)
{
return function(){alert(j)}
}.call(null,j)
}
}
</script>
</head>
<body>
<h1>TEST</h1>
<ul>
<li><a href="#">链接1</a></li>
<li><a href="#">链接2</a></li>
<li><a href="#">链接3</a></li>
</ul>
</body>
</html>
请参阅
应用于:Function 对象
要求
版本 5.5
调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。