中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript的DOM核心操作有哪些

發布時間:2021-11-20 13:35:12 來源:億速云 閱讀:128 作者:iii 欄目:開發技術

本篇內容主要講解“JavaScript的DOM核心操作有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JavaScript的DOM核心操作有哪些”吧!

文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴展標記語言(HTML或XML)的標準編程接口。

W3C已經定義了一系列DOM接口,通過這些DOM接口可以改變網頁的內容、結構和樣式。

1、對于JavaScript,為了能夠使JavaScript操作HTML,JavaScript就有了一套自己的dom編程接口;

2、對于HTML,dom使html形成一顆dom樹,包含文檔、元素、節點。

文檔:整個頁面就是一個文檔;

元素:頁面中所有的標簽都叫做元素;

節點:頁面中所有的內容都是節點。文檔節點(ducument對象)、元素節點(element對象)、屬性節點(attribute對象)、文本節點(text對象)、注釋節點(comment對象),代碼間的換行也是一個節點。

我們獲取過來的所有DOM元素都是一個對象(object)。

對于DOM操作,我們主要針對于 對元素的操作,主要有創建、增、刪、改、查、屬性操作、事件操作。

一、創建

主要包括三種:

1、document.write

特點:如果頁面文檔流加載完畢(即所有的代碼執行完畢),再調用這句話會導致頁面重繪(即重新給我們創建了一個html頁面,我們之前寫的東西都沒了)。(很少使用)

2、innerHTML:將內容寫入某個DOM節點,不會導致頁面全部重繪。

3、createElement:也不會導致頁面重繪。

innerHTML和createElement效率對比:

①innerHTML拼接效率測試:

<script>    function fn() {        var d1 = +new Date();        var str = '';        for (var i = 0; i < 1000; i++) {            document.body.innerHTML += '<div style="width:100px; height:2px; border:1px solid blue;"></div>';        }        var d2 = +new Date();        console.log(d2 - d1);    }    fn();</script>

執行結果如下

執行速度為1600毫秒左右

②createElement效率測試

<script>    function fn() {        var d1 = +new Date();        for (var i = 0; i < 1000; i++) {            var div = document.createElement('div');            div.style.width = '100px';            div.style.height = '2px';            div.style.border = '1px solid red';            document.body.appendChild(div);        }        var d2 = +new Date();        console.log(d2 - d1);    }    fn();</script>

執行結果如下

執行速度為十幾秒

③innerHTML數組效率測試

<script>    function fn() {        var d1 = +new Date();        var array = [];        for (var i = 0; i < 1000; i++) {            array.push('<div style="width:100px; height:2px; border:1px solid blue;"></div>');        }        document.body.innerHTML = array.join('');        var d2 = +new Date();        console.log(d2 - d1);    }    fn();</script>

執行結果如下

執行速度為個位數秒

結果分析:

執行效率:innerHTML數組效率 > createElement效率 > innerHTML拼接效率

所以創建多個元素時innerHTML效率更高(不要拼接字符串,采用數組形式拼接),結構稍微復雜麻煩一些。

createElement()創建多個元素時效率稍微低一些,但結構清晰。

二、增

主要包括兩種:

1、appendChild:node.appendChild(child)是在后面追加元素

2、insertBefore:node.insertBefore(child)是添加到最前面

三、刪

removeChild:node.removeChild(child)刪除父節點中的一個子節點,并返回被刪除的節點。

四、改

主要是修改dom元素的屬性,dom元素的內容、屬性,表單的值等。

1、修改元素屬性:src、href、title等。可以直接修改,這些屬性都是可讀寫的。

2、修改普通元素內容:innerText、innerHTML。(兩者都是可讀寫的)

element.innerText:讀取時,只讀取標簽里面的內容,不會少文字,但不會讀取里邊的標簽、空格和換行。(非標準)

element.innerHTML:讀取時,整個讀取出來,包括html標簽,同時保留空格和換行。(W3C標準,常用)

3、修改表單元素:value(表單里邊的內容)、type(表單類型)、disabled(是否被使用)等。

4、修改元素樣式:style、className。可以直接通過style修改屬性,如果需要修改的屬性較多或者為了方便操作,建議修改className。

五、查

主要獲取查詢dom的元素

1、DOM提供的API方法:getEementById、getElementsByTagName等古老的方法。

2、H5提供的新方法:querySelector、querySelectorAll 。(提倡)

3、利用節點操作獲取元素:父(parentNode)、子(children)、兄(previousElementSibling、nextElementSibling)。(提倡)

六、屬性操作

主要針對自定義屬性

1、setAttribute:設置dom的屬性值。 element.setAttribute('屬性', '值');  主要針對自定義屬性

2、getAttribute:獲取dom的屬性值

獲取dom的屬性值有兩種方法:element.屬性   和   element.getAttribute(‘屬性’)

區別:

element.屬性  獲取的是內置屬性值(元素本身自帶的屬性);

element.getAttribute(‘屬性’)主要獲取的是自定義的屬性(我們自己添加的屬性)。

3、removeAttribute:移除屬性。  removeAttribute(‘屬性’)  

七、事件操作

給元素注冊事件,采取:事件源.事件類型=事件處理程序

onclick:鼠標左鍵單擊事件。

onmouseover:鼠標經過時觸發。

onmouseout:鼠標離開時觸發。

onfocus:獲得鼠標焦點觸發。

onblur: 失去鼠標焦點觸發。

dblclick: 鼠標左鍵雙擊事件。

onmousemove:鼠標移動觸發。

onmousedown:按下鼠標鍵時觸發。

onmouseup:釋放按下的鼠標鍵時觸發。

到此,相信大家對“JavaScript的DOM核心操作有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜宾县| 信宜市| 辽宁省| 湘潭市| 宣城市| 汉川市| 沽源县| 丘北县| 靖安县| 库尔勒市| 内黄县| 克拉玛依市| 黄大仙区| 当涂县| 都安| 博野县| 交口县| 中牟县| 桑植县| 兴安县| 巨野县| 哈尔滨市| 乐陵市| 福安市| 穆棱市| 沙河市| 澎湖县| 太白县| 定陶县| 且末县| 北海市| 德惠市| 清镇市| 淮北市| 永靖县| 萨迦县| 白城市| 连山| 额济纳旗| 巫溪县| 五家渠市|