无法访问函数jquery外部的变量

Cannot access variable outside function jquery

本文关键字:外部 变量 jquery 函数 访问      更新时间:2023-09-26

一直在四处阅读,现在非常困惑。我正在尝试访问全局范围中的一个局部变量。我已经删除了函数中的var,但它仍然是"未定义的"。我确信我只是错过了什么——任何帮助都将不胜感激。谢谢

var totalcostApple;
function shopping() {
    $("#apple").on("keyup", function () {
    var quantity = $("#apple").val();
    totalcostApple = (quantity * 0.2).toFixed(2);

     });
};
shopping();
console.log(totalcostApple);

你似乎误解了自己在做什么。你的代码流一团糟。调用shopping()时,指示浏览器将keyup事件绑定到apple对象。但是,在将其绑定到对象之后,就可以查询变量。但是您的速度不够快,无法在shopping函数和keyup事件之间生成keyup事件。只是为了向您展示,与其只登录一次控制台,不如尝试在另一次将其登录到控制台。任何时候。添加以下代码行:

$(window).on('click', function(){ console.log(totalcostApple); });

现在,您可以在变量实际发生更改时测试。每次单击时,它都会将totalcostApple的当前值记录到控制台。

但实际上,你应该这样改进你的代码:

// add some code to assure that everything you do only gets executed after the DOM is ready
$(document).ready(function(){
    // add a default value to your totalcost.
    var totalcostApple = 0;
    function shopping() {
        // remove your keyup event from here and tie it in directly.
        var quantity = $("#apple").val();
        totalcostApple = (quantity * 0.2).toFixed(2);
        // move your log inside the event so you can see it when it *changes*
        console.log(totalcostApple);
    };
    $("#apple").on("keyup", shopping);
});