(function() {
       var extUrl = (function() {var result=[];chj.getzgxcDeps().each(function(item){
          var url = {};
          for(var i=0;i<chj.getzgxcReps(item).size();i++)
          {         
           url.name = identity.getGroupName(item);
           url.url = chj.getzgxcReps(item)[i];
           result.push(url);}},result);return result;})();
           form.extUrl=extUrl;
           audit.setVar('billdata',toJSON(form)); 
           })()            
       请问我的for循环语句是不是有问题啊,我取出来的url都是相同的,都是最后1个。

解决方案 »

  1.   


    <script type="text/javascript">
    (function() { 
             var extUrl = (function() {var result=[];chj.getzgxcDeps().each(function(item){ 
              var url = {}; 
              for(var i=0;i <chj.getzgxcReps(item).size();i++) 
              {   
       (function(){
      url.name = identity.getGroupName(item); 
      url.url = this; 
      result.push(url);}},result);return result;})(); 
      form.extUrl=extUrl; 
      audit.setVar('billdata',toJSON(form)); 

    }).call(chj.getzgxcReps(item)[i])     
              
        })()
    </script>
      

  2.   

    楼主,你是不是用了自己公司写的js框架?否则下面代码中的函数哪里来的?chj.getzgxcDeps().each()看你的代码,像是自己有个js框架,调用的自己的js的方法。这个没办法帮你,因为我不知道你的框架什么样子。最好去找写那个js框架的人,可能这个是js框架的BUG。
      

  3.   

    chj.getzgxcDeps()的到的是一些ID,下面getzgxcReps()通过ID来得到URL的。
      

  4.   

    呵呵 真的不好意思。即使你说么了这2个函数的作用,也是帮不了你。可能问题就出在这2个方法上面也说不定的。这里提问的,都是纯的js问题,或者是开源的js框架问题,比如:jQuery、Prototype、Ext、Dojo。你给出的这个程序只有你们公司有,我们无法看到源码,如果让我们只看这一段代码是没法解决问题的。如果让我们猜问题的所在。身为一个程序员,你也知道“差之毫厘,谬以千里”啊。帮不上。
      

  5.   


    <script> 
    (function() { 
             var extUrl = (function() {var result=[];chj.getzgxcDeps().each(function(item){ 
              var url = {}; 
              for(var i=0;i <chj.getzgxcReps(item).size();i++) 
              {        
         (function(i){
      url.name = identity.getGroupName(item); 
      url.url = chj.getzgxcReps(item)[i]; 
      result.push(url);
      })(i)
       }},result);return result;})(); 
       form.extUrl=extUrl; 
       audit.setVar('billdata',toJSON(form)); 
    })()
    </script>