DOM

2018-10-09  本文已影响0人  索伯列夫

HTML DOM定义了访问和操作HTML文档的标准方法。换言之,就是如何获取、修改、添加或删除HTML元素的标准。


HTML DOM树

DOM节点

HTML文档的所有内容都是节点

节点树中的节点有层级关系,描述为parent、child、sibling等。

DOM 方法

方法是我们可以在节点上执行的动作(比如添加或修改元素)
属性是我们能够获取或设置的值(比如节点的名称或内容)

HTML DOM 对象 - 方法和属性

一些常用的 HTML DOM 方法:

DOM属性

属性是节点的值,可以获取或者设置

<div id="div1">huahua</div>
var txt = div1.innerHTML
console.log(txt) //huahua
var name = div1.nodeName
console.log(name) //huahuaDiv
var value = div1.nodeValue
console.log(value) //null
var type = div1.nodeType
console.log(type) //1

DOM访问(查找元素)

几种方法:

<div class='first' id="div1">huahua</div>
<div id="div2">huahua</div>

var id = document.getElementById('div1')
console.log(id) 
//<div id="div1">huahua</div>
var tagName = document.getElementsByTagName('div')
console.log(tagName)
//HTMLCollection(2) [div#div1, div#div2, div1: div#div1, div2: div#div2]
var className = document.getElementsByClassName('first')
console.log(className)
//HTMLCollection [div#div1.first, div1: div#div1.first]

DOM修改

改变:元素、样式、时间

修改HTML元素

改变HTML内容

直接使用inneeHTML属性可以做到

<div id="div1"></div>
div1.innerHTML = 'huahua'

改变HTML样式

上例中,通过div1.style.color = 'blue'可以改变字体颜色

创建新的HTML元素

通过createElement() appendChild()创建,
过程:首先创建该元素,然后将其追加到已有元素上

<div id="div1"></div>

div1.innerHTML = 'huahua'
var div2 = document.createElement('div')
div2.innerHTML = 'test'
div1.appendChild(div2)

通过insertBefore()创建,

<div id="div0"></div>
div0.innerHTML = 'huahua'
div0.style.border = '1px solid red'
var div1 = document.createElement('div')
div1.innerHTML = 'test1'
div1.style.border = '1px solid green'
div0.appendChild(div1)

var div2 = document.createElement('div')
div2.innerHTML = 'test2'
div2.style.border = '1px solid green'
div0.appendChild(div2)

var div3 = document.createElement('div')
div3.innerHTML = 'test3'
div0.insertBefore(div3,div2)
效果图

删除HTML元素

removeChild()
删除元素前,必须清楚它的父元素
div0.removeChild(div2)

效果图

替换HTML元素

replaceChild()给上述代码追加,

var p = document.createElement('p')
p.innerHTML = '这是一个p'
div0.replaceChild(p,div2)
效果图

DOM事件

onclick(),onload,onUnload,onchange,onmouseover onmouseout,onmousedown onmouseup...

补充

对象
Node对象包含:Element、Text、Document、Comment
页面上的节点,由其对象的构造函数,生成。
DocumentFragment优化

上一篇 下一篇

猜你喜欢

热点阅读