第11章 DOM擴(kuò)展

(一)

對(duì)DOM的兩個(gè)主要的擴(kuò)展是Selectors API(選擇符API)和HTML5。

(二)

jQuery的核心就是通過CSS選擇符查詢DOM文檔取得元素的引用,從而拋開了getElementById()和getElementsByTagName()。

(三)

Selector API Level 1的核心是兩個(gè)方法:querySelector()querySelectorAll()。querySelector()接收一個(gè)CSS選擇符,返回與該模式匹配的第一個(gè)元素,沒找到返回null。

var selected = document.querySelector(".selected");//取得類為“selected”的第一個(gè)元素

querySelectorAll()返回所有匹配的元素,返回的是一個(gè)NodeList的實(shí)例(但不會(huì)不斷地對(duì)文檔進(jìn)行搜索和動(dòng)態(tài)查詢)。

(四)

對(duì)于元素間的空格,IE9之前的版本與其他瀏覽器的處理有差異,導(dǎo)致了在使用childNodes和firstChild等屬性時(shí)的行為不一致。為了彌補(bǔ)差異又保持DOM規(guī)范不變,Element Traversal規(guī)范新定義了一組屬性。firstElementChild等,不必?fù)?dān)心空白文本節(jié)點(diǎn)。

firstElementChild見我的另一篇筆記:http://www.itdecent.cn/writer#/notebooks/15702203/notes/17309252

(五)

HTML5為每個(gè)元素定義了classLlist屬性,用于在元素中添加,移除及切換 CSS 類。該屬性是 DOMTokenList 對(duì)象(一個(gè)只讀的類數(shù)組對(duì)象),你可以通過DOMTokenList定義的方法對(duì)其進(jìn)行修改。方法包括:add、remove、toggle(切換)、contains、item(索引)。

詳情:https://segmentfault.com/a/1190000009067946

(六)

焦點(diǎn)管理:

document.activeElement屬性會(huì)引用DOM中當(dāng)前獲得了焦點(diǎn)的元素(得到的值是INPUT、BUTTON這種)

document.hasFocus()方法用于確定文檔是否獲得了焦點(diǎn)(返回true或false)。它們的用途是提高web應(yīng)用的無障礙性。

(七)

HTML5擴(kuò)展了HTMLDocument

1、readyState 屬性返回當(dāng)前文檔的狀態(tài)(載入中……)。

該屬性返回以下值:

uninitialized - 還未開始載入

loading - 載入中

interactive - 已加載,文檔與用戶可以開始交互

complete - 載入完成

2、兼容模式,document.compatMode屬性(鑒別標(biāo)準(zhǔn)模式、混雜模式)

如果文檔處于“混雜模式”,則該屬性值為"BackCompat"

如果文檔處于“標(biāo)準(zhǔn)模式”或者“準(zhǔn)標(biāo)準(zhǔn)模式(almost standards mode)”,則該屬性為"CSS1Compat"

當(dāng)document.compatMode等于BackCompat時(shí),瀏覽器客戶區(qū)寬度是document.body.clientWidth;

當(dāng)document.compatMode等于CSS1Compat時(shí),瀏覽器客戶區(qū)寬度是document.documentElement.clientWidth。瀏覽器客戶區(qū)高度、滾動(dòng)條高度、滾動(dòng)條的Left、滾動(dòng)條的Top等等都包括在內(nèi),而不僅僅是body部分。

3、document.head屬性引用文檔的head元素。返回當(dāng)前文檔中的元素。如果有多個(gè)元素,則返回第一個(gè)。

(八)

插入標(biāo)記

innerHTML屬性(不要過多使用,影響性能)。

outerHTML屬性會(huì)返回包括自身元素的代碼。

insertAdjacentHTML()方法,按位置插入HTML文本。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 11.1 選擇符API querySelector()和querySelectorAll()兩個(gè)方法接收一個(gè)CSS...
    Elevens_regret閱讀 251評(píng)論 0 0
  • 1. 選擇符 Selectors API 包括兩個(gè)方法:querySelector()和querySelector...
    Ching_Lee閱讀 268評(píng)論 0 0
  • 人在面對(duì)生老病死的時(shí)候是這么的無力,什么榮耀、高傲,什么錢財(cái)?shù)匚唬y(tǒng)統(tǒng)一文不值?;皿w,經(jīng)歷這么多,你覺得什么最重要...
    磨石閱讀 472評(píng)論 0 1
  • 一個(gè)孩子,為追求音樂夢(mèng)想,踏入了不可知的世界。以記憶為生的亡靈一副骷髏相卻與活人別無兩樣。同樣的鮮活的個(gè)性,衣著華...
    天空云_0eaf閱讀 623評(píng)論 0 0
  • 我摔下登山釘,差點(diǎn)沒命,手臂火辣辣的疼,憤怒已無法形容我的心情,我猛然抬頭往上看,有個(gè)男生手抓著我千辛萬苦打的登山...
    安紫顏閱讀 227評(píng)論 0 0

友情鏈接更多精彩內(nèi)容