目录
1. DOM 基础
1.1. DOM 是什么?
1.1.1. DOM 对象
1.1.2. DOM 结构
1.2. 节点类型
1.3. 获取元素
1.3.1. getElementById()
1.3.2. getElementsByTagName()
1.3.3. getElementsByClassName()
1.3.4. getElementsByName()
1.4.如何去操作对象
修改属性(css)
1.5.如何动态的创建对象
DOM
全称Document Object Model
(文档对象模型),它是由 W3C
定义的一个标准。DOM
提供的方法来实现的。DOM
里面有很多方法,我们通过它提供的方法来操作一个页面中的某个元素,例如:改变这个元素的颜色、点击这个元素实现某些效果、直接把这个元素删除等。DOM
操作,可以简单理解成“元素操作”。DOM
采用的是树形结构,用树节点形式来表示页面中的每一个元素,我们先看下面一个例子:
Gok
- Gok是一个……
- Gok成立于……
HTML
文档,DOM
会将其解析为如下图所示的树形结构。DOM 树
。在这棵树上html
元素是树根,也叫根元素。head
和 body
这两个分支,它们位于同一层次上,并且有着共同的父节点(即 html
),所以它们是兄弟节点。head
有 2 个子节点:title
、meta
(这两个是兄弟节点)。body
有 3 个子节点:h1
、p
、p
。HTML
页面用树形结构表示呢?这也是为了更好地给每一个元素进行定位,以便让我们找到想要的元素。DOM
操作太重要了)。JavaScript
中,节点也是分为很多类型的。DOM
节点共有12
种类型,不过常见的只有 3
种(其他的不用管)。div
这一个元素嘛。Gok
获取元素,准确来说,就是获取元素节点(注意不是属性节点或文本节点)。
对于一个页面,我们想要对某个元素进行操作,就必须通过一定的方式来获取该元素。只有获取到了,才能对其进行相应的操作。
咦,这不跟 CSS
选择器相似吗?只不过选择器是 CSS
的操作方式,而 JavaScript
却有着属于自己的另一套方法。
在 JavaScript
中,我们可以通过以下 6 种方式来获取指定元素:
getElementById()
getElementsByTagName()
getElementsByClassName()
getElementsByName()
querySelector()、querySelectorAll()
document.title、document.body
JavaScript
是严格区分大小写的,所以在书写的时候,就不要把这些方法写错了。JavaScript
中,如果想通过 id
来选中元素,我们可以使用 getElementById()
来实现。getElementById
这个方法的名字看似很复杂,其实根据英文来理解就很容易了,也就是get element by id
(通过 id
来获取元素)的意思。getElementById()
类似于 CSS
中的 id
选择器,只不过 getElementById()
是 JavaScript
的操作方式。document.getElementById("id名")
JavaScript
代码在HTML
代码的上面,如果没有 window.onload
,浏览器解析到 document.getElementById("div1")
就会报错,因为它不知道id
为"div1"
的元素究竟是哪位兄弟。window.onload
,使得浏览器把整个页面解析完了再去解析window.onload
内部的代码,这样就不会报错了。JavaScript
中,如果想通过标签名来选中元素,我们可以使用 getElementsByTagName()
方法来实现。getElementsByTagName()
类似于 CSS
中的元素选择器。document. getElementsByTagName("标签名")
- HTML
- CSS
- JavaScript
- jQuery
- Vue.js
JavaScript
中,如果想通过 class
来选中元素,我们可以使用 getElementsByClassName()
方法来实现。getElementsByClassName()
类似于 CSS
中的 class
选择器。document. getElementsByClassName("类名")
- HTML
- CSS
- JavaScript
- jQuery
- Vue.js
name
属性。如果想要通过 name
属性来获取表单元素,我们可以使用 getElementsByName()
方法来实现。document.getElementsByName("name名")
你的最高学历:
你喜欢的水果:
操作DOM对象
程咬金 ==》container
==》userName
==》change
操作DOM对象
// 动态创建元素
document.createElement("标签名字");
// 追加元素: 父级追加子级
父级对象.append(子级对象);
// 获取父级对象
子级对象.parentNode;
// 删除对象
dom对象.remove();
案例:
DOM对象的动态创建
男
女
姓名
年龄
性别
操作