为了账号安全,请及时绑定邮箱和手机立即绑定

全局变量不是哪里都能调用吗?为什么全局变量不能用在函数体内吗?

全局变量不是哪里都能调用吗?为什么全局变量不能用在函数体内吗?

IT骒 2016-09-05 00:10:51
 比如以下 var fhus1=document.getElementById("gk2"); 放function{}里面成局部变量才有用。<script type="text/javascript">            var fhus1=document.getElementById("gk2");            function hujy(){                fhus1.display="block";                fhus1.style.color="#0000FF";                fhus1.style.background="crimson";            }        </script>
查看完整描述

4 回答

已采纳
?
柠烟夏季

TA贡献15条经验 获得超14个赞

主要在于你执行document.getElementById("gk2"); 这句代码的时候 , 对应的DOM对象有没有加载完成

如果没有加载完成 , 这句代码是获取不到DOM对象的 , 返回null , 当然在你的函数里面就无法使用

HTML文本是由浏览器顺序扫描的 , 如果你嵌入的<script>放在了<head>里面 , 那么<body>里面的DOM元素此时肯定没有加载完

查看完整回答
2 反对 回复 2016-09-05
  • IT骒
    IT骒
    那放function里面为什么就能用了呢
  • 柠烟夏季
    柠烟夏季
    只是在于你调用这个函数的时候, 页面DOM结构如果已经加载完成了, getElementById就可以获得到正确的结果了 , 关键不在于函数的里面或外面 , 只是这句代码何时执行的问题
  • 清晨漫步
    清晨漫步
    onload指示页面包含图片等文件在内的所有元素都加载完成。 document.ready表示文档结构已经加载完成(不包含图片等非文字媒体文件)。
点击展开后面2
?
丶前男友

TA贡献42条经验 获得超18个赞

我的导师跟我说过一句话,js代码最好写在</body></html>之间~我也不知道你是不是因为你js写前面的问题,你最好把代码全复制上来

查看完整回答
反对 回复 2016-09-05
?
stone310

TA贡献361条经验 获得超191个赞

应该是要加上window.onload吧,是不是因为你赋值的时候元素还未加载好

查看完整回答
反对 回复 2016-09-05
  • 4 回答
  • 1 关注
  • 2672 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信