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 //比如你是從哪里跳轉到這個頁面的,通過設定,可以提高安全性
......
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/25016.html
標籤:JavaScript
上一篇:不用框架也能寫公司要的功能么?
下一篇:求助,這個問題不知道是怎么回事
