js 中的 DOM 和 BOM
- 2021 年 1 月 4 日
- 筆記
BOM瀏覽器對象模型
概念:Browser Object Model
組成:
-
Window:瀏覽器窗口對象
-
Navigator:瀏覽器對象
-
screen:顯示器螢幕對象
-
History:歷史記錄對象
-
Location:地址欄對象
Window:瀏覽器窗口對象
1.創建
不用創建,直接使用Window對象中的屬性和方法
2.方法的使用
-
與彈出框有關的方法
-
alert() :顯示帶有一段消息和確認按鈕的警告框。
-
confirm() :重點關注 顯示帶有一段消息以及確認按鈕!取消按鈕的對話框。
如果點擊確認,那麼該方法返回一個true值;如果點擊取消,那麼該方法返回一個false值 -
prompt():顯示可提示用戶輸入的對話框。
如果點擊確認,那麼該方法返回輸入框中輸入的值;如果點擊取消,那麼該方法就不返回輸入框輸入的值 -
與打開與關閉瀏覽器窗口的方法
-
close() :關閉瀏覽器窗口。
-
open():打開一個新的瀏覽器窗口或查找一個己命名的窗口。
-
與定時器相關的方法
-
- setlnterval()按照指定的周期(以毫秒計)來調用函數或計算表達式。
-
setTimeout()在指定的毫秒數後調用函數或計算表達式。
-
clearInterval()取消由setInterval()設置的 timeout。
-
clearTimeout()取消由setTimeout()方法設置的timeout。
3.屬性的使用
1.獲取其他的BOM對象
- history
- location
- Navigator
- Screen
2.獲取DOM對象
- document:文檔對象
4.對象的特點
-
window對象不需要創建,直接使用,window.屬性名/方法名,前面的window還可以省略不寫
-
可以通過window對象獲取其他的BOM對象和DOM對象
Location地址欄對象
Location對象包含有關當前URL的資訊。
1.創建:通過window對象來獲取 window.location,前面的window可以省略不寫
⒉屬性:href設置或返回完整的URL。
3.方法:
1. reload0重新載入當前文檔。刷新動作
2. replace():用新的文檔替換當前文檔。
History歷史記錄對象
1.創建:通過window對象來換器歷史記錄對象 window.history,前面的window可以省略不寫
2.方法:
-
forward()載入history列表中的下一個 URL。
-
back()載入 history 列表中的前一個URL。
-
go()載入 history列表中的某個具體頁面。
3.屬性
length返回瀏覽器歷史列表中的URL數量。
DOM對象
-
Document—文檔對象
-
Element—元素對象
-
Attribute—-屬性對象
-
Text—-文本對象
-
Comment—注釋對象- Node—-節點對象
XML DOM內容–針對XML文檔的標準模型
HTML DOM-針對HTML文檔的標準模型
Document文檔對象
1.創建
通過window對象獲取文檔對象 window.document, windom可以省略不寫。
2.方法
- 通過Element元素對象:
1.getElementById()通過id名稱獲取id名稱對應的元素對象。ID屬性值一般唯一
2.getElementByTagName()通過標籤名稱獲取對應的元素對象。返回的是一個對象數組
3.getElementsByClassName() 通過class屬性值獲取對應的元素對象數組
4.getElementsByName() 通過name屬性值換器對應的元素對象。返回的是一個對象數組
- 創建其他DOM對象
1.createComment() 創建注釋節點。
2.createElement()創建元素節點。
3.createTextNode()創建文本節點。
4.createAttribute(name)創建擁有指定名稱的屬性節點,並返回新的Attry對象。
3.屬性
title 返回當前文檔的標題。
URL 返回當前文檔的 URL。
4.特點
Comment注釋對象
Element元素對象
1.創建
有兩種方式創建
- 通過文檔document的獲取元素對象的方法來獲取元素對象
- 通過document.createElement() 來創建元素對象
2.方法
3.屬性
4.特點
Node節點對象
節點對象可以是元素節點,屬性節點,文本節點,任何節點都有父節點和子節點,但是文本節點沒有子節點
方法:
CRUD操作 添加節點 刪除節點 查找節點 修改節點(替換節點)
- 添加節點 appendChild() 向父節點中添加子節點
- 刪除節點 removeChild() 從父節點中刪除子節點
- 替換節點 replaceChild() 用一個新節點替換原來的節點
屬性:
parentNode:獲取子節點的父節點
childNodes: 獲取父節點的所有的子節點
firstChild:獲取父節點中的第一個子節點
lastChild: 獲取父節點中的最後一個子節點
Event 事件對象
概念:某些組件被執行了一些操作,會觸發一些功能效果。
事件有幾個因素:
事件:某些操作(功能、方法)。如 點擊、雙擊、鍵盤按下、鍵盤彈起…….
事件源:組件 被操作的對象 元素/標籤 輸入框、超鏈接、按鈕…..
監聽器:Listener Filter Servlet(服務中間件,橋樑) HTML CSS JS,執行事件的程式碼
註冊監聽:將事件、事件源、監聽器三者綁定到一起。當事件源上發生了某個事件,則會觸發執行某個監聽器程式碼。
常見的事件:
- 點擊事件
點擊事件: onclick
雙擊事件: ondblclick
- 焦點事件
獲取焦點: onfocus
失去焦點 onblur
-
載入事件
onload 一個頁面或者一張影像完成載入
-
滑鼠事件
滑鼠按鍵按下: onmousedown
滑鼠按鍵鬆開: onmouseup
滑鼠離開: onmouseout
滑鼠移動: onmousemove
滑鼠懸浮到某元素上:onmouseover
- 鍵盤事件
鍵盤按下: onkeydown
鍵盤鬆開: onkeyup
鍵盤按下並鬆開: onkeypress
- 表單事件
表單提交:onsubmit
表單重置:onreset
- 選擇和改變事件
onchange 文本內容發生改變觸發
onselect 文本被選中觸發
HTML DOM 標籤對象
-
標籤體內容獲取和設置 屬性: innerHTML(可以插入文本內容和標籤以及組合標籤) innerText(插入文本內容)
-
使用html標籤對象擁有的屬性
-
通過標籤對象更改標籤的樣式: style 通過style屬性設置css樣式
div.style.border = “1px solid black”;
div.style.background = “red”;
div.style.backgroundImage = “url(影像路徑)”
一般不推薦 使用css程式碼提前設置
通過className屬性給該標籤設置對應的class值