Files
rikako-note/javascript/dom.md
2022-06-23 00:13:20 +08:00

62 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# dom
- ## js中dom模型的简介
- js的dom中常用对象
- window浏览器用来载入页面的tab通过js中的window对象用户可以通过调用window对象中的方法完成如下操作
- 返回窗口大小
- 操作导入window中的document
- 存储特定页面的数据
- 在当前document中添加handler
- navigator可以通过该对象来检索浏览器的状态和身份信息
- document代表载入window的html文档
- dom树形结构
- root node在dom树结构中根节点总是html节点
- 子节点:直接位于另一个节点内的节点
- 后代节点:如果一个节点位于另一个节点内,不管是直接位于还是间接被包含
- 父节点:如果一个节点直接包含另一个节点
- 兄弟节点如果两个节点位于dom树中的同一层并且具有相同的父节点那么他们就是兄弟节点
- ## document api查找节点元素
- querySelector
- document.querySelector()会返回第一个匹配的元素
```javascript
document.querySelector("p")
```
- querySelector:
- 返回所有满足条件的元素按照NodeList的形式返回
```javascript
document.querySelectorAll("p")
```
- ## document api创建新元素
- document.createElement:
```javascript
let node=document.createElement('p')
let p_node=document.querySelector('p')
p_node.apendChild(node)
```
- node.appendChild:通过该方法可以为节点插入新的子元素
- document.createTextNode创建新的文本节点类似与#text的子节点
- ## document api 移除元素
- parentNode.removeChild移除子元素
```javascript
let par_node=document.querySelector("div")
let child_node=document.querySelector("div > p")
par_node.removeChild(child_node)
```
- childNode.remove:对子元素可以直接调用remove
```javascript
let child_node=document.querySelector("div > p")
child_node
```
- ## js修改css样式
- 可以通过修改HTMLElement.style中的属性来通过js修改html页面中元素的样式其会通过inline stylehtml元素的style属性来修改页面样式
```javascript
let node=document.querySelector("p")
node.style.background="grey"
```
- 除了可以通过修改inline style来动态修改元素属性外还可以预先在css中为各个class指定样式然后在运行时动态的通过js来修改元素的class属性此时会为元素应用不同的样式
```javascript
let node=document.querySelector("p")
node.setAttribute('class','white-style')
```