<table  id="big">
     <tr>
 <td><div></div></td>
 <td><div></div></td>
    </tr>
</table>var tds = this.getElementById("big").getElementsByTagName("td") ;
//我想给td加一个点击事件,但这里有个问题需要处理,就是我需要点时传一个值给它进行处理,这个值只能在绑定事件时计算得到,但我现在采用的这种方式是无法进行值赋值的,因为click内部值是它当时数值。我应如何修改这种代码呢? 
   for(var i = 0; i < tds.length; i++) 
 {
       tds[i].onclick= function (){   需要根据 i 数值处理内容... } }

解决方案 »

  1.   

    for(var i = 0; i < tds.length; i++){
       tds[i].onclick= function (n){return function(){ 需要根据 i 数值处理内容... }}(i)
    }
      

  2.   

    for(var i = 0; i < tds.length; i++){
      tds[i].onclick= function (n){return function(){ 需要根据 n 数值处理内容... }}(i)
    }
      

  3.   


    <table id="big">
      <tr>
    <td><div>1</div></td>
    <td><div>2</div></td>
      </tr>
    </table><script type="text/javascript">
    onload = function(){
    var tds = document.getElementById("big").getElementsByTagName("td") ;
    for(var i = 0; i < tds.length; i++){
    tds[i].onclick= (function (n){
    return function(){
    alert(n);
    }
    })(i);
    }
    }
    </script>
      

  4.   

    $("td").each(function(i,n){
        //这个i就是你需要的数值0,1,2,3。
    });