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

关于display、function用法

http://img1.sycdn.imooc.com//566957940001e5b905430592.jpg

  function hidetext()  
        {   var mychar= document.getElementById("con");
            mychar.style.display="none";}
  function showtext()
        {   var mychar= document.getElementById("con");
            mychar.style.display="block";}

下面是正确的代码。为什么截图中这样写不行?不都是在<script>...</script>标签中吗

正在回答

4 回答

你把mychar 获得元素引用从函数中提出来的话 就得把整个script标签放在你要获取的那个元素后面,因为顺序加载的缘故,像你现在这样放的话,执行 mychar = document.getElement……  浏览器还没有加载到那个标签,所以mychar的引用为undefined

4 回复 有任何疑惑可以回复我~
#1

有事烧纸 提问者

同样是按顺序加载,为啥不把mychar提出来就可以
2015-12-10 回复 有任何疑惑可以回复我~
#2

木子舟义 回复 有事烧纸 提问者

你既然知道有顺序加载这个概念.那为什么不能理解你在执行mychar = document.getElementById("con") 的时候这个 id为con的HTML标签并没有被渲染在DOM树上的事实。
2015-12-10 回复 有任何疑惑可以回复我~
#3

有事烧纸 提问者 回复 木子舟义

好的! 我了解了 DOM还没有学。 诶 你好像经常回答我的问题 0.0 谢谢你
2015-12-10 回复 有任何疑惑可以回复我~
#4

木子舟义 回复 有事烧纸 提问者

不客气,加油~
2015-12-10 回复 有任何疑惑可以回复我~
#5

jikaiyang

顺序加载是指从body部分开始吗??
2015-12-15 回复 有任何疑惑可以回复我~
查看2条回复

跟作用域有关,写在函数外边的 变量mychar是全局变量

你浏览器怎么报错的吧?

0 回复 有任何疑惑可以回复我~
#1

有事烧纸 提问者

没报错 就是没有反应
2015-12-10 回复 有任何疑惑可以回复我~

你调用函数时它只是单纯的执行函数里的代码,而不管前面的和后面的

1 回复 有任何疑惑可以回复我~
#1

有事烧纸 提问者

谢谢了
2015-12-10 回复 有任何疑惑可以回复我~

把script挪到</form>后面,需要先加载内容,js才能对内容进行操作,是顺序执行的

2 回复 有任何疑惑可以回复我~
#1

有事烧纸 提问者

谢谢~
2015-12-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript入门篇
  • 参与学习       739817    人
  • 解答问题       9566    个

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

进入课程

关于display、function用法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信