Element
節點物件對應網頁的 Html 元素。
一、例項屬性
1、元素特性的相關屬性
Element.id
返回元素id
屬性,屬性可讀寫。Element.tagName
返回元素的大寫標籤名,與nodeName
屬性的值相等。Element.dir
用於讀寫當前元素的文字方向,從左到右(ltr
),從右到左(rtl
)Element.accessKey
用於讀寫分配給當前元素的快捷鍵。Element.draggable
返回一個布林值,表示當前元素是否可拖動,屬性可讀寫Element.lang
返回當前元素的語言設定,屬性可讀寫Element.tabIndex
返回一個整數,表示當前元素在 Tab 鍵遍歷時的順序,屬性可讀寫。Element.title
滑鼠懸浮時彈出的文字提示,可讀寫
2、元素狀態的相關屬性
Element.hidden
返回一個布林值,表示當前元素的hidden
屬性,可讀寫。與 CSS 設定相互獨立,優先順序低於 CSS 設定。Element.contentEditable
可設定屬性,使得元素是否可編輯,三個值true
,false
,inhert
,屬性可讀寫,Element.isContentEditable
返回一個布林值,屬性只讀。Element.attributes
返回當前元素節點的所有屬性節點類陣列物件。Element.className
用來讀寫元素的class
屬性。Element.classList
返回元素節點的class
屬性的類陣列物件。有以下方法:add()
增加一個classremove()
移除一個classcontains()
檢查是否包含某個classtoggle()
將某個class移入或移出當前元素。第二個引數為布林值,新增為true
,移除為false
。item()
返回指定索引位置的classroString()
將class列表轉化為字串
Element.dataset
返回一個物件,讀取元素上data-
屬性Element.innerHTML
用來設定某個節點的內容,可讀寫。Element.outHTML
返回一個當前元素節點所有 HTML 程式碼的字串。Element.clientHeight
返回一個整數值,表示元素系欸但的 CSS 高度(單位畫素),只對塊級元素生效,行內元素返回0
。包括padding
,不包括border
、margin
Element.clientWidth
返回節點的 CSS 寬度,塊級元素有效,行內元素返回0
,包括padding
,不包括border
、margin
。
// 視口高度
document.documentElement.clientHeight
// 網頁總高度
document.body.clientHeight
複製程式碼
Element.clientLeft
等於元素節點左邊框的寬度,如果沒有設定左邊框,或者行內元素則返回0
。Element.clientTop
元素頂部邊框的寬度,其他同上。Element.scrollLetf
表示當前元素的水平滾動條向右側滾動的畫素數量Element.scrollTop
元素垂直滾動條向下滾動的畫素數量。如果要檢視整張網頁的水平的和垂直的滾動距離,要從document.documentElement
元素上讀取。Element.offsetParent
返回最靠近當前元素的,並且 CSS 的position
屬性不等於static
的上層元素。如果該元素是不可見的(display
屬性為none
),或者位置是固定的(position
屬性為fixed
),則offsetParent
屬性返回null
。Element.offsetHeight
返回元素 CSS 垂直高度(單位畫素),包括元素本身高度、padding和border,及水平滾動條的高度(如果存在)。屬性只讀Element.offsetWidth
元素 CSS 水平寬度,其他同上。屬性只讀Element.offsetLeft
元素左上角相對於Element.offsetParent
節點的水平位移。Element.offsetTop
返回垂直位移。Element.style
用於樣式的操作Element.children
返回當前元素節點的所有子元素的類陣列物件。Element.childElementCount
返回當前元素節點包含的子元素節點的個數。Element.firstElementChild
返回當前元素的第一個子節點元素,Element.lastElementChild
返回最後一個子節點元素。沒有返回null
Element.nextElementSibling
返回元素節點後一個同級元素節點,Element.previousElementSibling
返回元素節點的前一個同級元素節點。
例項方法
1、屬性相關方法
getAttribute()
獲取某個屬性的值getAttributeNames()
返回元素所有的屬性名setAttribute()
寫入屬性值hasAttribute()
某個屬性是否存在hasAttributes()
元素是否有屬性removeAttribute()
刪除屬性
Element.querySelector()
接受 CSS 選擇器為引數,但是無法選中偽元素。返回父元素的第一個匹配的子元素。
Element.querySelectorAll()
接受 CSS 選擇器作為引數,返回一個NodeList例項,包含所有匹配的子元素。
Element.getElementsByClassName()
方法返回一個HTMLCollection
例項,成員是當前元素節點的所有具有指定 class
的子元素節點。該方法與document.getElementsByClassName
方法的用法類似,只是搜尋範圍不是整個文件,而是當前元素節點。
Element.getElementsByTagName()
返回一個HTMLCollection
例項,成員是當前節點的所有匹配指定標籤名的子元素節點。該方法與document.getElementsByClassName
方法的用法類似,只是搜尋範圍不是整個文件,而是當前元素節點。
Element.closest()
接受一個 CSS 選擇器作為引數,返回匹配選擇器的、最接近當前節點的一個祖先節點(包括當前節點本身)。沒有則返回null
// HTML 程式碼如下
// <article>
// <div id="div-01">Here is div-01
// <div id="div-02">Here is div-02
// <div id="div-03">Here is div-03</div>
// </div>
// </div>
// </article>
var div03 = document.getElementById('div-03');
// div-03 最近的祖先節點
div03.closest("#div-02") // div-02
div03.closest("div div") // div-03
div03.closest("article > div") //div-01
div03.closest(":not(div)") // article
複製程式碼
Element.matches()
返回一個布林值,表示當前元素是否匹配給定的 CSS 選擇器。
事件相關方法
Element.addEventListener()
新增事件的回撥函式Element.removeEventListener
移除事件監聽函式Element.dispatchEvent
觸發事件
Element.scrollInteView()
滾動當前元素,進入瀏覽器可見區域,類似於window.location.hash
的效果。
該方法可以接受一個布林值作為引數。如果為true,表示元素的頂部與當前區域的可見部分的頂部對齊(前提是當前區域可滾動);如果為false,表示元素的底部與當前區域的可見部分的尾部對齊(前提是當前區域可滾動)。如果沒有提供該引數,預設為true。
Element.getBoundingClientRect()
返回一個物件,提供當前元素節點的大小、位置等資訊,基本上就是 CSS 盒狀模型的所有資訊。
Element.getClientRects()
返回一個類似陣列的物件,裡面是當前元素在頁面上形成的所有矩形(所以方法名中的Rect用的是複數)。每個矩形都有bottom、height、left、right、top和width六個屬性,表示它們相對於視口的四個座標,以及本身的高度和寬度。
Element.insertAdjacentElement()
方法在相對於當前元素的指定位置,插入一個新的節點。該方法返回被插入的節點,如果插入失敗,返回null。
方法一共可以接受兩個引數,第一個引數是一個字串,表示插入的位置,第二個引數是將要插入的節點。第一個引數只可以取如下的值。
-
beforebegin
:當前元素之前 -
afterbegin
:當前元素內部的第一個子節點前面 -
beforeend
:當前元素內部的最後一個子節點後面 -
afterend
:當前元素之後
注意,beforebegin
和afterend
這兩個值,只在當前節點有父節點時才會生效。
Element.insertAdjacentHTML(),Element.insertAdjacentText()
Element.insertAdjacentHTML
方法用於將一個 HTML 字串,解析生成 DOM 結構,插入相對於當前節點的指定位置。
Element.insertAdjacentText
方法在相對於當前節點的指定位置,插入一個文字節點.
引數和Element.insertAdjacentElement()
一樣。
Element.remove()
用於將當前元素節點從它的父節點移除。
Element.focus(),Element.blur()
Element.focus方法用於將當前頁面的焦點,轉移到指定元素上。
Element.blur方法用於將焦點從當前元素移除。
Element.click()
Element.click方法用於在當前元素上模擬一次滑鼠點選,相當於觸發了click事件。