Javascript 无法获取$(document.ready(){}之外的值

Javascript 无法获取$(document.ready(){}之外的值,javascript,jquery,Javascript,Jquery,我很困惑,为什么我可以在$(document).ready()中获取“tmp”的innerHtml值,但不能在$(document).ready()之外获取该值!我认为DOM对象应该是全局的。所以我对这个结果很困惑。谁能帮帮我吗? 请分享更多详细信息。会发生什么?用于确保代码在页面加载后运行。文件准备好后,如果您愿意的话。其他代码将在此之前运行,并且很可能ID为tmp的元素在该点不存在。我怀疑您的脚本位于部分,因此在呈现之前就运行了。好的,我忽略了您只向$(document).ready()中的

我很困惑,为什么我可以在$(document).ready()中获取“tmp”的innerHtml值,但不能在$(document).ready()之外获取该值!我认为DOM对象应该是全局的。所以我对这个结果很困惑。谁能帮帮我吗?

请分享更多详细信息。会发生什么?用于确保代码在页面加载后运行。文件准备好后,如果您愿意的话。其他代码将在此之前运行,并且很可能ID为tmp的元素在该点不存在。我怀疑您的脚本位于
部分,因此在呈现
之前就运行了。好的,我忽略了您只向
$(document).ready()中的tmp元素*添加内容的事实。它在它之外的代码后面运行。因此,从上到下解析you go.HTML。遇到脚本时,脚本会完整运行;
下面的任何HTML都不存在。但是,脚本中的行并不是都按顺序从上到下运行;函数中的东西通常不会。这些通常仅在事件发生时运行,例如文档加载完成或用户单击某个对象。您的控制台显示的输出看起来像一个空字符串,这与
一致,因此您的代码按预期工作。脚本底部的两个命令运行时,输出为
“”
。2.文档加载完毕,ready事件触发3。运行匿名函数,调用$.ajax()4。该函数没有其他命令,结束5。服务器发送回复,ajax成功函数运行6。服务器的应答被插入到DOM中,然后输出
 $(document).ready(function () {
        $.ajax({
            url: "/file_lines",
            type: 'GET',
            // contentType: 'application/json', // format of Data to be sent to the server
            // data: 'json',//Data to be sent to the server
            dataType: 'text', //The type of data that you're expecting back from the server.
            success: function (lines) {
                document.getElementById("tmp").innerHTML = lines
                **console.log(document.getElementById("tmp").innerHTML)**
            },
            error: function (){
                alert("get debug log's lines failed");
                return false;
            }
        });
})

// console.log($('#tmp').html())
**var num = document.getElementById("tmp").innerHTML
console.log(num)**