所以我的HTML中包含一个.js文件
如果我将其放在.js文件中,
$(document).ready(function(){
var siteRoot = $('.site-root').val();
alert(siteRoot);
});
该代码将正确警告该值,但是如果我这样做:
var siteRoot = $('.site-root').val();
$(document).ready(function(){
alert(siteRoot);
});
它会提醒未定义
有没有办法在
$(document).ready()
中访问外部变量,因为如果我将变量放在$(document).ready()
中,则其他js文件将无法访问该变量 最佳答案
您可以将其设置为全局:
// this is the same as your example,
// just wanted to stress that it's a part of the window (global) object
window.siteRoot = $('.site-root').val();
$(document).ready(function(){
alert(window.siteRoot);
});
甚至更好的是,使用某种命名空间,例如:
var MyData = {};
MyData.siteRoot = $('.site-root').val();
$(document).ready(function(){
alert(MyData.siteRoot);
});