为什么我不能访问全局变量中的值

莫娜

在下面的代码中,我使用 ajax 从数据库中获取所有数据并将其存储在 proj4_data 变量中。变量是全局的。当我单击页面上的按钮时,我可以访问变量的值,但是当我在回调函数加载完成后立即尝试访问变量值时,变量的值为空(警报是我的位置)尝试获取值)。有人可以帮忙说明为什么会这样:

    $(document).ready(function() {
    var modal = document.getElementById('myModal');
    var prod_name =  document.getElementById('product_name');

    cart = new shopping_cart("jadrn026");

    proj4_data = new Array();
    $.get('/perl/jadrn000/proj4/get_products.cgi', storeData);
alert(proj4_data);
    $('#milk').on('click', function() {
    tmpString = "";

    var value = $("#milk").val();
    prod_name.innerHTML = value;
        tmpString += '<ul id="db_items">';
    for(var i=0; i < proj4_data.length; i++) {

        if(proj4_data[i][1] == "Milk chocolate") {
        var str1 = proj4_data[i][2].split("'").join("\\'");
        var str2 = proj4_data[i][3].split("'").join("\\'");
        var str3 = proj4_data[i][4].split("'").join("\\'");

        tmpString += "<li><button class=\"description\" onclick=\"showDesc(\'" + str1 + "\', \'" + str2 + "\', \'" + str3 +  "\', \'" + proj4_data[i][0] + "\', \'" + proj4_data[i][6] + "\')\"><img src=\"/~jadrn000/PROJ4_IMAGES/" + proj4_data[i][0]+".jpg\" alt=\""+ proj4_data[i][2]+"\""+
            " width=\"200px\"  /></button><br />";  
        tmpString += "<p id='price'>$" + proj4_data[i][6] + "</p>";
        tmpString += "<input type='button' value='Order' onclick=\"showDesc(\'" + str1 + "\', \'" + str2 + "\', \'" + str3 +  "\', \'" + proj4_data[i][0] + "\', \'" + proj4_data[i][6] + "\')\"" + proj4_data[i][0]+"' />";
        }
    }
    tmpString += "</ul>";
    var handle = document.getElementById('content');
    handle.innerHTML = tmpString;

    });
    function storeData(response) {
    var tmpArray = explodeArray(response,';');
    for(var i=0; i < tmpArray.length; i++) {
        innerArray = explodeArray(tmpArray[i],'|');
        proj4_data[i] = innerArray;
        }

    }


    // from http://www.webmasterworld.com/forum91/3262.htm            
    function explodeArray(item,delimiter) {
    tempArray=new Array(1);
    var Count=0;
    var tempString=new String(item);

    while (tempString.indexOf(delimiter)>0) {
    tempArray[Count]=tempString.substr(0,tempString.indexOf(delimiter));
    tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
    Count=Count+1
    }

    tempArray[Count]=tempString;
    return tempArray;
    }  
迈克尔·普兰特

其余代码在等待 AJAX 请求完成时不会停止。它发送请求,然后立即执行警报。由于请求尚未完成,该变量仍为空。

如果要在请求后运行警报,请将警报放入回调函数中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能访问该全局变量?

来自分类Dev

为什么我不能在WatchKit中更改全局变量的值-Swift?

来自分类Dev

为什么不能访问此全局变量?

来自分类Dev

为什么我不能增加全局变量

来自分类Dev

为什么不能删除全局变量?

来自分类Dev

为什么我的函数不将值返回全局变量?

来自分类Dev

为什么在函数中无法访问我的全局变量?

来自分类Dev

为什么我们不能使用C中的表达式为全局变量赋值?

来自分类Dev

为什么构造函数中的全局变量和参数变量不能具有相同的名称?

来自分类Dev

为什么我的函数和循环无法访问我的全局变量?

来自分类Dev

为什么我不能在响应中直接用jest.fn()模拟全局变量?

来自分类Dev

为什么我不能在单独的html和js文件中使用全局变量?

来自分类Dev

为什么在调试时全局变量“不可访问”?

来自分类Dev

在 JavaScript 中,为什么这个全局变量在我的函数中未定义?

来自分类Dev

为什么在BGE Python中变量不是全局变量

来自分类Dev

为什么我不能在班级中访问变量。Python

来自分类Dev

为什么我的全局变量不起作用?(蟒蛇)

来自分类Dev

为什么我的全局变量为null?

来自分类Dev

为什么我的mod_python全局变量被重置?

来自分类Dev

为什么我的 for 循环不使用更新的全局变量?

来自分类Dev

为什么全局变量不保留值

来自分类Dev

为什么更改全局变量的值不生效?

来自分类Dev

为什么我的全局变量没有在Test :: Class中初始化?

来自分类Dev

为什么我的全局变量没有在Test :: Class中初始化?

来自分类Dev

为什么我无法读取嵌套函数中全局变量的变化?

来自分类Dev

为什么全局变量存储在堆中?

来自分类Dev

为什么C ++中存在全局变量?

来自分类Dev

为什么NaN是JavaScript中的全局变量?

来自分类Dev

为什么 Ruby 中存在全局变量?

Related 相关文章

  1. 1

    为什么我不能访问该全局变量?

  2. 2

    为什么我不能在WatchKit中更改全局变量的值-Swift?

  3. 3

    为什么不能访问此全局变量?

  4. 4

    为什么我不能增加全局变量

  5. 5

    为什么不能删除全局变量?

  6. 6

    为什么我的函数不将值返回全局变量?

  7. 7

    为什么在函数中无法访问我的全局变量?

  8. 8

    为什么我们不能使用C中的表达式为全局变量赋值?

  9. 9

    为什么构造函数中的全局变量和参数变量不能具有相同的名称?

  10. 10

    为什么我的函数和循环无法访问我的全局变量?

  11. 11

    为什么我不能在响应中直接用jest.fn()模拟全局变量?

  12. 12

    为什么我不能在单独的html和js文件中使用全局变量?

  13. 13

    为什么在调试时全局变量“不可访问”?

  14. 14

    在 JavaScript 中,为什么这个全局变量在我的函数中未定义?

  15. 15

    为什么在BGE Python中变量不是全局变量

  16. 16

    为什么我不能在班级中访问变量。Python

  17. 17

    为什么我的全局变量不起作用?(蟒蛇)

  18. 18

    为什么我的全局变量为null?

  19. 19

    为什么我的mod_python全局变量被重置?

  20. 20

    为什么我的 for 循环不使用更新的全局变量?

  21. 21

    为什么全局变量不保留值

  22. 22

    为什么更改全局变量的值不生效?

  23. 23

    为什么我的全局变量没有在Test :: Class中初始化?

  24. 24

    为什么我的全局变量没有在Test :: Class中初始化?

  25. 25

    为什么我无法读取嵌套函数中全局变量的变化?

  26. 26

    为什么全局变量存储在堆中?

  27. 27

    为什么C ++中存在全局变量?

  28. 28

    为什么NaN是JavaScript中的全局变量?

  29. 29

    为什么 Ruby 中存在全局变量?

热门标签

归档