读书人

关于js中的全局变量解决思路

发布时间: 2013-04-20 19:43:01 作者: rapoo

关于js中的全局变量
var I_form=document.getElementById("myform");
function setAgeVisibility()
{
if (I_form.pname.value==""){...

}

}
运行是提示I_form.pname.value未定义;
改成
function setAgeVisibility()
{
if (document.getElementById("myform").pname.value==""){...

}

}
可以正常运行。。。求大神给原因呢 JavaScript 全局变量 函数
[解决办法]
应该是在你代码跑到var I_form=document.getElementById("myform");的时候这个节点还没生成。

个人觉得是你这个节点完全是后期通过JS插入到DOM里面的,当你调用setAgeVisibility的时候,你是确定了这个节点已经被插入进去了,所以在里面写document.getElementById("myform")是可以找到节点的。

但是放在外面的时候全局变量document.getElementById("myform")没找到,I_form所以是undefined,所以在里面直接用I_form会报错。
[解决办法]
那看来你只适合这种方式
var I_form;
window.onload=function(){
I_form=document.getElementById("myform");
}
function setAgeVisibility()
{
if (I_form.pname.value==""){...

}

}

读书人网 >JavaScript

热点推荐