从另一个函数中获取var

Get var from another function?

本文关键字:获取 var 函数 另一个      更新时间:2023-09-26

你好,我正在尝试从另一个函数中获取变量

代码:

$(document).ready(function() {
        var totalFiles;
$(".filesUpload").on("change", function() { 
                    var files = $(".filesUpload").prop("files");
                    var names = $.map(files, function(val) { return val.name; });
                    $("#uploadBar").modal('show');
                    var totalFiles = names.length;
                });
                $("#uploadBar").on("shown.bs.modal", function() { var test = totalFiles; alert(test); });

但现在我只在totalFiles上得到了未定义的结果,但如果我在var totalFiles=names.length之后有一个警报,我得到了正确的结果,有人知道我能做什么,我做错了什么?

PS。我也检查了其他线程,但仍然不起作用。

检查对totalFiles的引用。您有一个全局声明,然后在$(".filesUpload").on("change", function() {中本地声明。

这就是它需要的:

$(document).ready(function() {
        var totalFiles;
$(".filesUpload").on("change", function() { 
                    var files = $(".filesUpload").prop("files");
                    var names = $.map(files, function(val) { return val.name; });
                    $("#uploadBar").modal('show');
                     totalFiles = names.length;
                });
                $("#uploadBar").on("shown.bs.modal", function() { var test = totalFiles; alert(test); });

只需从第一个函数中删除'var'

不要声明变量两次。在onChange函数中,只需使用totalFiles,而不用var关键字再次声明它。

$(".filesUpload").on("change", function() {
    ...
    totalFiles = names.length;
    ...
});

您在回调中声明了一个局部变量。totalFiles = names.length;是更新全局变量的正确方法。

var totalFiles;
$(".filesUpload").on("change", function() { 
    var files = $(".filesUpload").prop("files");
    var names = $.map(files, function(val) { return val.name; });
    $("#uploadBar").modal('show');
    totalFiles = names.length;
});