window.onload=function(){
 aclick();
}


var aclick=function()
{

 var divt=classname(document,"div","conets");
 var fieldset=divt[0].getElementsByTagName("dl")[0].getElementsByTagName("dd")[0].getElementsByTagName("fieldset");
 var a;  
 for(var i=0;i<fieldset.length;i++)
 {
a=fieldset[i].getElementsByTagName("p")[0].getElementsByTagName("a");
   for(var j=0;j<a.length;j++)
{
(function(j){
           oEventUtil.AddEventHandler(a[j],'click',function(){avalues(i,j)});
                                                        问题就是这里的i没有值
 })(j);
}
 }

}
function avalues(i,j)
{
alert(i,j);
}
  我想取到第一个循环的i值放入avalues中可没有值,感谢帮助。
 oEventUtil.AddEventHandler(a[j],'click',function(){avalues(i,j)});

解决方案 »

  1.   

    i值没传进来function(i, j){ 
              oEventUtil.AddEventHandler(a[j],'click',function(){avalues(i,j)}); 
    })(i, j); 
      

  2.   

    function(i, j){ 
              oEventUtil.AddEventHandler(a[j],'click',function(){avalues(i,j)}); 
    })(i, j);
    -------------------
    如上写法只传i,而j又没值了。
      

  3.   

    这样测试,没发现问题:
    window.onload=function(){ 
        aclick(); 
    }var aclick=function() 

        var a; 
        for(var i=0;i < 5;i++) 
        { 
            for(var j=0;j<3;j++) 
            { 
                (function(j){
                    (function(){avalues(i,j)})(); 
                })(j); 
            } 
        } } 
    function avalues(i,j) 

        alert(i + "--" + j);