日期:2014-05-19  浏览次数:20846 次

$.each方法中的变量怎么不可用?
JScript code

             $("#button").click(function(){
                var preSelector='';
        $.getJSON("testAction",function(data){
            $.each(data.arrayList,function(i,value){//arrayList是链表对象
                preSelector=value+'ooooo'+preSelector;
            });
        });
             //为什么在这里preSelector值为空呢?难道出了getJSON方法,值都消失了??
           alert(preSelector);
         });
                



如上述代码,求救!谢谢

------解决方案--------------------
你用firebug调试,1、确认此jquery方法语法都ok。
2、后台打断点,debug跟踪,看看是否正确进入后台,并且拿到资料,返回到jsp中。
我猜测,data有可能为null。
------解决方案--------------------
each方法在回调函数里,在你执行回调函数的时候,alert已经执行了。你把alert方法回调函数里看看
------解决方案--------------------
ajax实习异步操作,你getjson的时候也同时alert了,这时还没执行回调函数呢。

所以空。

你可以在回调函数里alert回调的内容看看。
------解决方案--------------------
楼上说的对,你调用的是异步方法,当你去后台执行的时候,页面中的代码是不会等待你返回的,所以先执行了alert这句。你要想在下面使用的话,可以sleep一下,或者把异步调用改成同步调用。
------解决方案--------------------
探讨

ajax实习异步操作,你getjson的时候也同时alert了,这时还没执行回调函数呢。

所以空。

你可以在回调函数里alert回调的内容看看。

------解决方案--------------------
探讨

引用:

ajax实习异步操作,你getjson的时候也同时alert了,这时还没执行回调函数呢。

所以空。

你可以在回调函数里alert回调的内容看看。


对,是这样的。你应该把 alert(preSelector);换个位置:


Java code

$("#button").click(function(){
……

------解决方案--------------------
探讨

引用:

引用:

ajax实习异步操作,你getjson的时候也同时alert了,这时还没执行回调函数呢。

所以空。

你可以在回调函数里alert回调的内容看看。


对,是这样的。你应该把 alert(preSelector);换个位置:


Java code

$("#button").click(function(……