写ajax发现一个新问题

    xiaoxiao2023-03-24  5

    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>
    转载请注明原文地址: https://ju.6miu.com/read-1202316.html
    最新回复(0)