1. BOM
BOM 是瀏覽器對象模型,就可以理解成是當(dāng)前瀏覽器打開的窗口
window對象 就是 BOM
通過window對象 可以操作瀏覽器本身 它里面提供了一些操作當(dāng)前瀏覽器的對象和方法
1.1. 各種彈框:
window.alert('消息框')
window.prompt('輸入框')
window.confirm('確認(rèn)框')
1.2. 打開和關(guān)閉窗口:
open()方法听诸,打開新的窗口
window.open('http://baidu.com')
close()方法坐求,關(guān)閉當(dāng)前窗口
window.close()
1.3. 通用方法
window.parseInt('123') //將字符串的'123',強(qiáng)轉(zhuǎn)為整型的123
window.parseFloat('12.12') //將字符串的'12.12'晌梨,強(qiáng)轉(zhuǎn)為浮點型的12.12
window.isNaN('abc') //判斷'abc'桥嗤,不是數(shù)值數(shù)據(jù)须妻,成立返回true
1.4. 定時器方法:
指定毫秒后,執(zhí)行的定時器
window.setTimeout()
每隔指定的毫秒后泛领,執(zhí)行的定時器
window.setInterval()
1.5. 常用屬性
location屬性:
location是window對象的屬性荒吏,該屬性用于設(shè)置網(wǎng)頁的地址欄
location.href屬性 表示跳轉(zhuǎn),當(dāng)前瀏覽器的地址欄發(fā)生了跳轉(zhuǎn)
其實超鏈接標(biāo)簽的內(nèi)部就是對location.href屬性的封裝
window.location.href = 'http://baidu.com'
location.reload()方法 表示刷新當(dāng)前地址欄(刷新當(dāng)前窗口)
window.location.reload()
history屬性:
history是window對象的屬性渊鞋,該屬性用于設(shè)置網(wǎng)頁的瀏覽歷史記錄
forward()前進(jìn)
window.history.forward()
back()后退
window.history.back()
go()方法绰更,既可以實現(xiàn)前進(jìn),也可以實現(xiàn)后退
window.history.go(1) //前進(jìn)一次
window.history.go(3) //前進(jìn)三次
window.history.go(-1) //后退一次
window.history.go(-3) //后退三次
2. DOM
DOM 文檔對象模型锡宋,就是當(dāng)前網(wǎng)頁里面的所有內(nèi)容儡湾。
因為網(wǎng)頁是在瀏覽器中顯示的,整個瀏覽器是BOM执俩,所以DOM其實是BOM的一部分
BOM 就是 window對象 DOM 就是 document對象
使用DOM獲取網(wǎng)頁元素:
如果該元素徐钠,是網(wǎng)頁的必備元素,而且只能有一個奠滑,可以通過document對象直接獲取丹皱。
比如:head,title,body
document.body.style.border = "1px solid #ccc"
document.title = 'helloworld'
更多的時候,我要需要獲取網(wǎng)頁中的指定元素宋税,這就需要專門的方法來獲取了摊崭。
getElementById()方法,根據(jù)元素的id屬性值來獲取指定的元素杰赛。
注意:如果網(wǎng)頁中id屬性值重復(fù)呢簸,只獲取第一個。
getElementsByTagName()方法乏屯,根據(jù)元素的標(biāo)簽名獲取所有該元素根时。
getElementsByClassName()方法,根據(jù)元素的類選擇器名稱獲取所有該元素辰晕。
getElementsByName()方法蛤迎,根據(jù)元素的name屬性值獲取所有該元素。
簡單的封裝一下:
function$(id){returndocument.getElementById(id)}
querySelector()方法含友,根據(jù)選擇器的名稱返回元素替裆,如果有多個元素,只返回第一個元素窘问。
querySelectorAll()方法辆童,根據(jù)選擇器的名稱返回所有的元素。
注意:querySelectorAll()方法惠赫,返回的是集合對象把鉴,不是數(shù)組對象《郏可以利用展開運算符庭砍,將集合對象轉(zhuǎn)為數(shù)組對象场晶。
轉(zhuǎn)為數(shù)組對象后,就可以使用數(shù)組相關(guān)的方法了怠缸。
let divs2 = [...divs]
querySelector()和querySelectorAll()方法里面也可以寫所有的css選擇器峰搪。
3. 操作DOM元素的內(nèi)容和樣式
操作DOM的樣式,有多種方式:
通過style屬性直接設(shè)置
通過className屬性設(shè)置類選擇器
也可以通過classList屬性添加多個類選擇器
操作DOM的內(nèi)容:
innerText屬性凯旭,用于獲取 和 操作 DOM的文本內(nèi)容。
innerHTML屬性使套,用于獲取 和 操作 DOM的HTML內(nèi)容罐呼。
4. 操作DOM元素的屬性
獲取和設(shè)置標(biāo)簽自帶的屬性(原生屬性),直接點
let src = img.src //src是圖片標(biāo)簽的原生屬性
獲取和設(shè)置標(biāo)簽自定義的屬性侦高,需要通過getAttribute()和setAttribute()方法
setAttribute()方法嫉柴,設(shè)置元素的屬性值,需要傳兩個參數(shù)(屬性名和屬性值)
getAttribute()方法奉呛,獲取元素的屬性值计螺,只需要傳一個參數(shù)(屬性名)
5. 創(chuàng)建和刪除DOM元素
createElement()方法,用于創(chuàng)建DOM元素
appendChild()方法瞧壮,用于在當(dāng)前DOM元素中添加子元素
刪除元素有兩種寫法:
自刪 remove()方法登馒,是元素刪除自己
通過父級刪除子級 removeChild()方法,是刪除元素里面指定的子元素
補(bǔ)充1:onclick是點擊事件咆槽,on表示當(dāng)陈轿,click表示點擊
補(bǔ)充2:parentElement和parentNode屬性,返回父級元素