写ajax发现一个新问题

来源:互联网 发布:是谁来自山川湖海 知乎 编辑:程序博客网 时间:2024/05/05 14:09
function checkscore() {            var array1 = new Array();            var array2 = new Array();            var score = 100;            var n = 0;            var answers = $("input:checked");            for (var i = 0; i < answers.length; i++) {                array1[i] = (answers.eq(i).next("span").text()).split(".")[1];            }            console.log(array1);            $.ajax({                type: "GET",                url: "../php/test.php",                datatype: "JSON",                data: {                    pointID: 1                }            }).done(function (data) {                var data = jQuery.parseJSON(data);                if (data.status != 200) {                    alert('wrong!');                    return;                } else {                    data = data.data;                    var ca = JSON.parse(data[0].testJSON);                    for (var i = 0; i < ca.length; i++) {                        array2[i] = ca[i].right;                        n++;                    }                    console.log(array2);                    console.log(n);                    for (var i = 0; i < n; i++) {                        if (array1[i] != array2[i]) {                            score = score - (100/n);                        }                    }                    score = Math.round(score);                    console.log(score);                    alert('您的分数为:'+score+"分");                }            });        }
不知道为什么<pre name="code" class="javascript"> console.log(array2); console.log(n);
<span style="font-family: Arial, Helvetica, sans-serif;">这两行必须写在done函数里面,写在外面的话就什么都没有,我done函数里面应该给局部变量array2和n都已经赋值了才对,在done函数之外两个变量赋的值就没了</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="font-family:Arial, Helvetica, sans-serif;">已解决:ajax要慢于网页的加载速度,当ajax未执行完毕时,array2和n都是没有被赋值的,读取网页时先输出了array2和n自然就没有值了</span>
                                             
0 0