打错了,应该是这样
function updownmouse(i)
{
alert(i);//这里输出的i总为500;
}function gettd()
{
var a=huaban.getElementsByTagName("td"),i;
for(i=0;i<a.length;i++)
{
a[i].onclick=function(){updownmouse(i);};
}
}

解决方案 »

  1.   

    function gettd()
    {
    var a=huaban.getElementsByTagName("td"),i;
    for(i=0;i<a.length;i++)
    {
    a[i].onclick=function(){alert(i);};
    }

    这样很全了,所有td格子输出的i依然是500
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT=""></HEAD><BODY>
    <input type='button' name='C2' value ='0'>
    <input type='button' name='C2' value ='1'>
    <input type='button' name='C2' value ='2'>
    </BODY>
    <script language="javascript">
    alert("")
    function gettd()
    {
    alert("1")
    var a=document.getElementsByTagName("input");
    alert(a.length)
    for(var i=0;i<a.length;i++)
    {
    a[i].onclick=(function (i){return function(){updownmouse(i);}})(i)
    }
    }
    function updownmouse(i)
    {
    alert(i);//这里输出的i总为500;
    }
    gettd();
    </script>
    </HTML>闭包问题
    http://bbs.51js.com/viewthread.php?tid=61767&highlight=%2B%D4%C2%D3%B0
      

  3.   

    你还可以看看这个,至于这个问题的解决方法是上面那个
    http://bbs.51js.com/thread-56907-1-1.html
      

  4.   

    谢谢了,刚才用了另一种方法。是可以实现效果的,但不知哪里不好
    function settd(i)
    {
    alert(i);
    }
    /////////////////////////////////////////
    function settda(value,i)
    {
    value.onmouseover=function(){settd(i)};
    }
    ////////////////////////////////////////
    function updownmouse()
    {
    var a=huaban.getElementsByTagName("td"),i;
    for(i=0;i<100;i++)
    {
    settda(a[i],i);
    }
    }
    ////////////////////////////////////////
    function gettd()
    {
    var a=huaban.getElementsByTagName("td"),i;
    for(i=0;i<100;i++)
    {
    a[i].onmousedown=function(){updownmouse();};
    }
    }