JS闭包问题,求高手解答

俊尚 发布于 2013/05/07 11:32
阅读 229
收藏 0
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>无标题页</title>
    <script type="text/javascript">
    //方法一
    function Test1(){
        var rows=document.getElementById("table1").rows;
        for(var i=1;i<rows.length;i++){
              var temp=rows[i].cells[0].childNodes[1].value;
              rows[i].ondblclick=function(){alert(temp);};
        }
    }
    //方法二
    function Test2(){
        var rows=document.getElementById("table1").rows;
        for(var i=1;i<rows.length;i++){
              (function(i){
                var temp=rows[i].cells[0].childNodes[1].value;
                rows[i].ondblclick=function(){alert(temp);};
                })(i)
            }
    }
    //方法三
    function Test3(){
        var rows=document.getElementById("table1").rows;
        if(rows.length>0){
            for(var i=1;i<rows.length;i++){
               var temp=rows[i].cells[0].childNodes[1].value;
               rows[i].ondblclick=function(s){
                                    return function(){alert(s);};
                                  }(temp);
            }
        }
    }
    window.onload=function(){Test3();}
    </script>
</head>
<body> 
    <table id="table1" border="1">
        <tr>
            <th>序号</th>
            <th>名称</th>
            <th>地址</th>
        </tr>
        <tr>
            <td>1<input id="hd1" type="hidden" value="hd1" /></td>
            <td>南大</td>
            <td>长沙市
            </td>
        </tr>
        <tr>
            <td>2<input id="hd2" type="hidden" value="hd2" /></td>
            <td>南大2</td>
            <td>长沙市2
            </td>
        </tr>
    </table>
</body>
</html>
//方法一无论双击哪行,都只显示hd2,后来我改为方法二 和方法三后就正确了。请问用方法2好还是3好,为什么?
加载中
0
北落
北落
方法2好一点,以后修改扩展都方便一点
0
铂金小江
铂金小江
如果只是绑定事件的话,没有一个好的。
返回顶部
顶部