6.0 DOM API

DOM:Document/Object/Model

DOM是一棵树,树上有Node,分为Document(html)、Element(元素)、Text(文本)、Comment(注释)及其他

DOM最主要的功能是:通过 构造函数 把 节点 变成 对象,通过调用对象的 API 来操作对象

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Node的接口

1.属性

nodeName,nodeType,nodeValue,

childNodes,parentNode,parentElement

firstChild,lastChild,nextSibling,previousSibling

innerText,textContent(注意两者的区别)

outerText,ownerDocument

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

需要注意的一些问题

document.body.childNodes   获取子节点(会获取文本节点)

document.body.children      获取字标签(不会获取文本节点)

 

如何获取文本

innerText(IE)与textConten(Firefox)的区别

(innerText意识到样式,比如display:none)

(innerText受Css样式影响,会触发重排.......也就是它的速度会比textContent慢)

 如何在标签里添加文本(两种方法)

div.innerText = 'nice to meet you'

这种方法有个弊端就是,会把你的元素清空,比如你div里面有<span>you</span>,添加后,你原有的span及内容都没了

div.appendChild(document.createTextNode('nice to meet you'))

生成一个新的节点,这样就不会影响原有内容

 

 

 2.方法(如果一个属性是函数,那么这个属性也叫作方法,换言之,方法是函数属性)

.appendChild( )

.cloneNode( ) //注意 .cloneNode(true)深拷贝,拷贝的跟原来的完全一样;.cloneNode( )浅拷贝,只克隆属性和标签不克隆其子节点

.contains( )

.hasChildNodes( )

.insertBefore( )

.isEqualNode( )   // 相等但不是同一个,比如 var a = 1; var b = 1 那么 a 和 b 相等但不是同一个

.isSameNode( )  //相同,同一个

.removeChild( )  //只是从页面中移除,但还是在存在于内存里

.replaceChild( )  //比如用div2替换div1,那么div1依然在内存里

.normalize( ) //常规化

 

 

Document 接口

参考链接:https://developer.mozilla.org/zh-CN/docs/Web/API/Document

 

属性

anchors //已经被弃用

body

characterSet

childElementCount

children

doctype

documentElement

domain

fullscreen

head

hidden

images

links

location

onxxxxx

origin

plugins

readyState

referer  //比如你是从哪里跳转到这个页面的,通过设置,可以提高安全性

......

 

 

posted @ 2020-07-28 04:48  ScottRhee  阅读(160)  评论(0编辑  收藏  举报