关于getElementById的问题。

来源:7-5 JS对表单元素进行设置3

firman

2019-12-12 17:22:25

            <script type="text/javascript">
                var yyyy = document.getElementById("yyyy");
		function ymd(){
			yyyy.options.add(new Option("1","1"));
		}
	</script>

这里通过Id获取的是Obj类型的吗?能不能当做JS的全局变量?如果可以的话,放在function的外面为什么行不通呢?

写回答

2回答

好帮手慕柯南

2019-12-12

同学你好!

  1. 获取的是一个对象

  2. 可以是全局的,但是你的js在页面引入时,应该放在页面的尾部,这样在加载js时,页面结构才能加载完,否在页面结构没有加载完,是无法获取页面的元素的

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0
hirman
h 还是没能理解,如果这里yyyy是一个对象,能作为全局变量,那么函数ymd就可以调用yyyy这个对象的呀?可是我只要把yyyy的声明放在函数的外面,浏览器就会报错cannot read property options of null 还望老师解答
h019-12-12
共2条回复

好帮手慕柯南

2019-12-12

同学你好!

1.如果放在函数的外面,下面这条语句在js加载时就会执行,此时document就需要从html中获取元素

http://img.mukewang.com/climg/5df218db093ccbf007170189.jpg

2. 如果js的引入放在了html的头部,此时html还没加载完,js就需要document去获取页面元素,是获取不到的。因此你在调用ymd函数时,yyyy是null,所以就报错了

3. 不是全局变量放在js的尾部,是js放在html页面的尾部

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

1
hirman
h 懂了,谢谢老师
h019-12-12
共1条回复

0 学习 · 9666 问题

查看课程