函数不读取全局变量
我有一个Javascript和全局变量litte问题。 根据我几分钟前在寻找解决方案时阅读的文章,函数外定义的变量是全局的,可以在整个文档中使用。那么,这似乎并不适用于我。基本上,甚至为什么我尝试的过程简化到这一点:函数不读取全局变量
var list_amount = 1;
function createElements() {
window.alert('0');
var cintfa_list_top = $("<div>").attr({"id":"intfa_list_top"});
$('#intfa_list').empty()
$('#intfa_list').append(cintfa_list_top);
var j=0;
window.alert('1');
for (j=0;j<list_amount;j++) {
window.alert('2');
......
....
..
我得到了0和1的window.alert,但不是2.当我设置一个window.alert(list_amount)函数里面,它返回undefined。全局变量不应该在函数内部工作吗?如果我误解了某些东西,有没有办法让函数变量成为全局函数,而不必将它们添加到函数参数中?
您的代码中存在挂起脚本的错误。事实上,关闭和功能工作得很好(同时也注释掉$,因为这里没有定义)。
检查Firebug或Chrome/Opera JavaScript控制台是否有错误。 LE:在看到jsfiddle.net/ALd2b/2后,你应该在变量赋值后调用函数。
我试过你的代码http://jsfiddle.net/lastrose/ALd2b/,它似乎工作正常。 我唯一能想到的就是它的全部定义。
嗯,那么它可能是一些代码错误waaay关闭别的地方。 Javascript bugfixing ahoy ..感谢您的测试:) – user1064701
我猜他的代码看起来更像这个http://jsfiddle.net/ALd2b/2/ –
不,可悲的是,它不。这将是一个简单的解决方案。 – user1064701
createElements()之外还有什么?这个函数是否在另一个函数中?如果是这样,list_amount不会是全局的,它将在本地函数 –
您是否在声明list_amount之前调用createElements? –
就是这样 - 卢克得到了 - 这是一个悬而未决的问题。声明被提升到顶部,设置为undefined,那么如果你在将它设置为1的行之前调用createElements,它仍然是未定义的 –