javascript - 在两个嵌套函数之间共享变量时遇到问题

标签 javascript jquery dom parse-platform

我在函数内有一个函数,但在传递变量时遇到问题。 我正在使用 jQuery 和 Parse.com 这是我的代码:

 <script>
    $(document).ready(function () {
        var tokfile;
        Parse.initialize(myApp, myID);
        var some_file = Parse.Object.extend("myApp");
        var query = new Parse.Query(some_file);
        query.equalTo("objectId", "xcxcxcxc");

        query.find
        ({
            success: function (results) {
                for (var i = 0; i < results.length; i++) {
                    var object = results[i];
                    console.log(object.id + ' - ' + object.get('some_file'));
                    var myObject = object.get('some_file');
                    var myFile = myObject._url

                }

            },
            error: function (error) {
                alert("Error: " + error.code + " " + error.message);
            }


        });
        $("#mp3").attr("src", myFile)

    });
</script>

<audio controls preload="none" style="width:480px;">
    <source id="mp3" src="placeholder" type="audio/mp3" />

正如您所见,我正在尝试将 #mp3 id 的 src 更改为从 Parse.com 获取的 URL 现在由于某种原因我无法加载它,而是使用占位符加载 DOM。 提前致谢!

最佳答案

正在改变的是变量的范围,因此将 myFile 变量放在请求的范围之外:

            <script>
        $(document).ready(function () {
            var tokfile;
            Parse.initialize(myApp, myID);
            var some_file = Parse.Object.extend("myApp");
            var query = new Parse.Query(some_file);
            var myFile;
            query.equalTo("objectId", "xcxcxcxc");

            query.find
            ({
                success: function (results) {
                    for (var i = 0; i < results.length; i++) {
                        var object = results[i];
                        console.log(object.id + ' - ' + object.get('some_file'));
                        var myObject = object.get('some_file');
                        var audioElement = document.querySelector('#audioplayer');
                        var source = document.querySelector('#mp3');
                        source.src = myObject._url;
                        audioElement.load();
                    }

                },
                error: function (error) {
                    alert("Error: " + error.code + " " + error.message);
                }


            });
            $("#mp3").attr("src", myFile)

        });
    </script>

    <audio controls preload="none" id="audioplayer" style="width:480px;">
        <source id="mp3" src="placeholder" type="audio/mp3" />

关于javascript - 在两个嵌套函数之间共享变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510268/

相关文章:

javascript - 在express中使用res.sendFile()时无法设置cookie

javascript - 获取 TextField 的 <li> 标记的值

javascript - 未捕获的类型错误 : callback. 应用不是函数

javascript - javascript 中的 anchors.length 无法正常工作

javascript - 如何访问javascript中有空格的对象参数

javascript - IE 中的复选框问题

javascript - 遍历表中的 DOM

php DOM 获取属性

javascript - 在 Tab 键上自动滚动以输入使其部分隐藏

jquery - <选项> 显示 :none; does not work on IE