在JAVASCRIPT中,为什么document.getElementById不可以再全局(函数外)使用?
今天在使用JavaScript使用document.ElementById("ID")的时候,发现var x = document.getElementById("childDiv")在方法外定义的全局变量不能使用,在方法内部定义却可以使用。具体代码如下:
<script type="text/javascript" charset="utf-8" async defer>
var x = document.getElementById("childDiv") /*无效的*/
function addButton(){
var e = document.createElement("input");
e.type="button";
e.value="被添加的按钮";
x.appendChild(e)
};
function addSelect(){
var e2 = document.createElement("select");
e2.options[0] = new Option("上海","");
e2.options[1] = new Option("北京","")
e2.size = "2";
x.appendChild(e2);
};
function addImg(){
var e3 = document.getElementById("img1")
x.appendChild(e3);
}
</script>
<div>
<img id="img1" src="img/view1.jpg" alt="星星" width="300" height="300">
<input type="button" value="添加按钮" onclick="addButton()">
<input type="button" value="添加选择框" onclick="addSelect()">
<input type="button" value="添加图像" onclick="addImg()">
<div id="childDiv"></div>
</div>
这个问题我纠结了好一会,在网上查取一些资料,翻来覆去好一会才想到原因,稍微改一下顺序。
<div>
<img id="img1" src="img/view1.jpg" alt="星星" width="300" height="300">
<input type="button" value="添加按钮" onclick="addButton()">
<input type="button" value="添加选择框" onclick="addSelect()">
<input type="button" value="添加图像" onclick="addImg()">
<div id="childDiv"></div>
</div>
<script type="text/javascript" charset="utf-8" async defer>
var x = document.getElementById("childDiv") /*有效的*/ ......
</script>
原来在在函数外写的 javascript 会在页面初始化之前就已经加载, 页面未初始化时自然就获取不到尚未加载的ID(childDiv),而当把这段JavaScript代码放在页面之后,就可以正常使用。所有在学习的时候一定要注意加载顺序的问题,不要犯小韩这样的小白错误呀。
在JAVASCRIPT中,为什么document.getElementById不可以再全局(函数外)使用?的更多相关文章
- JavaScript中querySelector()和getElementById()(getXXXByXX)的区别
在日常开发中,使用JavaScript获取元素的时候,最常用的方法就是document.getElementById(getXXXByXX)方法.但是最近发现有很多地方使用的是querySelecto ...
- 使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色 实现思路: 在页面的 <body&g ...
- javascript中window,document,body的解释
解释javascript中window,document,body的区别: window对象表示浏览器中打开的窗口,即是一个浏览器窗口只有一个window对象. document对象是载入浏览器的ht ...
- JavaScript中的document.fullscreenEnabled
本文主要讲述了: 什么是document.fullscreenEnabled 作用 兼容性 正文 什么是document.fullscreenEnabled document.fullscreenEn ...
- 使用 JavaScript 中的 document 对象查找 HTML 元素,实现“登录”按钮的高亮特效 鼠标悬浮于“登录”按钮时,按钮高亮显示;
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象查找 HTML 元素,实现"登录"按钮的高亮特效 鼠标悬浮于"登录" ...
- Javascript中,document.getElementsByName获取的就一定是数组了么?
今天在一张JSP网页中,写一个javascript方法,用于全选. 全部被选checkBox位于一个名为mainForm的Form下,name=pushIds.方法如下: function selec ...
- JavaScript中的document.cookie的使用
转:http://blog.csdn.net/liuyong0818/article/details/4807473 我们已经知道,在 document 对象中有一个 cookie 属性.但是 Coo ...
- javascript里面的document.getElementById
一.getElementById:获取对 ID 标签属性为指定值的第一个对象的引用,它有 value 和 length 等属性 1.获取当前页面的值input标签值:var attr1=documen ...
- JavaScript 中Array数组的几个内置函数
本文章内容均参考<JavaScript高级程序设计第三版> 今天在看JavaScript书籍的时候,看到之前没有了解过的JavaScript中Array的几个内置函数对象,为了之后再开发工 ...
随机推荐
- 7.11 NOI模拟赛 graph 生成函数 dp 多项式
LINK:graph HDU题库里的原题 没做过自闭. 考虑dp 设\(f_{i,j}\)表示前i个点构成j个联通块是树的方案数. 对于一次询问答案即为\(\sum_{j}f_{n,j}j^k\) 考 ...
- 4.11 省选模拟赛 序列 二分 线段树优化dp set优化dp 缩点
容易想到二分. 看到第一个条件容易想到缩点. 第二个条件自然是分段 然后让总和最小 容易想到dp. 缩点为先:我是采用了取了一个前缀最小值数组 二分+并查集缩点 当然也是可以直接采用 其他的奇奇怪怪的 ...
- MySQL InnoDB技术内幕:内存管理、事务和锁
前面有多篇文章介绍过MySQL InnoDB的相关知识,今天我们要更深入一些,看看它们的内部原理和机制是如何实现的. 一.内存管理 我们知道,MySQl是一个存储系统,数据最后都写在磁盘上.我们以前也 ...
- 阿里居然推出了开源的JDK,你造么?
简介 Alibaba Dragonwell 是一款免费的, 生产就绪型Open JDK 发行版,提供长期支持,包括性能增强和安全修复.阿里巴巴拥有最丰富的Java应用场景,覆盖电商,金融,物流等众多领 ...
- Hadoop的序列化
普通的序列化需要将类型的继承结构也序列化,但是hadoop只序列化对象本身,忽略继承关系,因为hadoop中传输的自定义类型一般都是简单的类型,这样可以减少传输的序列化数据,降低网络带宽的使用.
- Spring Boot的自动配置,到底是怎么做到?
作者:祖大帅 链接:juejin.im/post/5b679fbc5188251aad213110 来源:掘金 1. Spring Boot.Spring MVC 和 Spring 有什么区别? 分开 ...
- java验证输入是否为三阶幻方
问题描述: 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行.每一列和每一条对角线的和都是相同的. 三阶幻方又 ...
- ASP.NET Core3.x 基础(1)
ASP.NET Core与2.x相比发生的一些变化: 项目结构 Blazor SignalR gRPC 关于Program类:Main方法,在系统执行时就会找到这个Main方法,实际上是配置了ASP. ...
- RF,SVM和NN的优缺点
1. 随机森林优缺点 随机森林(RF)是Bagging的一个扩展变体.RF在以决策树为基分类器进行集成的基础上,进一步在决策树的训练过程中引入了随机属性选择. Bagging就是对数据集训练多个基分类 ...
- stat 命令家族(2)- 详解 pidstat
性能测试必备的 Linux 命令系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1819490.html 介绍 对 Linux 任务的统计 ...