首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

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

2013-04-20 
关于js中的全局变量var I_formdocument.getElementById(myform)function setAgeVisibility() {if (I_f

关于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==""){...

    }

}

热点排行