一整套操作文檔流的屬性和方法 操作頁面的標(biāo)簽(元素) 認識一些內(nèi)容 用一個變量保存頁面中的某個或者某些元素 2、獲取常規(guī)元素 根據(jù) id 獲取元素 根據(jù) 類名 獲取元素 根據(jù) 標(biāo)簽名 獲取元素 根據(jù)選擇器獲取 一個 標(biāo)簽 根據(jù)選擇器獲取 一組 標(biāo)簽 在 JS 內(nèi)操作元素樣式有三種 獲取元素行內(nèi)樣式 目的:批量給變樣式 className classList
DOM – Document Object Model
操作標(biāo)簽的增刪改查
操作標(biāo)簽的屬性(id, class, type, …)
操作標(biāo)簽的樣式
…
-document:文檔流,頁面,根節(jié)點,但不是元素(標(biāo)簽)
-html:承載所有標(biāo)簽的最大的元素,根元素節(jié)點
-head:專門承載當(dāng)前頁面的說明標(biāo)簽,這里的內(nèi)容一般不顯示在頁面上
-body:專門承載當(dāng)前頁面的顯示標(biāo)簽,真實顯示在網(wǎng)頁的內(nèi)容獲取元素
獲取元素的方法分為兩類
1、獲取非常規(guī)元素
語法:document.getElementById
返回值:如果頁面上有 id 對應(yīng)的元素,那么就是這個元素,如果沒有就是 null
語法:document.getElementsByClassName(‘元素類名’)
返回值:必然是一個偽數(shù)組
如果頁面上有 類名 對應(yīng)的元素, 那么有多少獲取多少, 放在偽數(shù)組內(nèi)返回
如果頁面上沒有 類名 對應(yīng)的元素, 那么就是一個空的偽數(shù)組
語法:document.getElementsByTagName(‘標(biāo)簽名’)
返回值:必然是一個偽數(shù)組
如果頁面上有 標(biāo)簽名 對應(yīng)的元素, 那么有多少獲取多少, 放在偽數(shù)組內(nèi)返回
如果頁面上沒有 標(biāo)簽名 對應(yīng)的元素, 那么就是一個空的偽數(shù)組
語法:document.querySelector(‘選擇器’)
返回值:如果頁面上有 選擇器 對應(yīng)的元素, 那么返回選擇器對應(yīng)的第一個元素
如果頁面上沒有 選擇器 對應(yīng)的元素, 那么就是 null
語法:document.querySelectorAll(‘選擇器’)
返回值:必然是一個偽數(shù)組
如果頁面上有 選擇器 對應(yīng)的元素, 有多少獲取多少, 放在一個偽數(shù)組內(nèi)返回
如果頁面上沒有 選擇器 對應(yīng)的元素, 那么就是一個空的偽數(shù)組操作元素樣式
1、獲取元素行內(nèi)樣式(只能獲取到行內(nèi)樣式)
2、獲取元素非行內(nèi)樣式(包含行內(nèi)和非行內(nèi))
3、設(shè)置元素的樣式(只能設(shè)置行內(nèi)樣式)
注意:涉及到帶有中劃線的樣式名的時候
轉(zhuǎn)換成駝峰命名法
使用數(shù)組關(guān)聯(lián)語法
語法:元素.style.樣式名console.log(ele.style.width) console.log(ele.style.height) // 非行內(nèi)樣式 console.log(ele.style.fontSize) console.log(ele.style['font-size'])
語法:window.getComputedStyle(要獲取樣式的元素).樣式名console.log(window.getComputedStyle(ele).width) console.log(window.getComputedStyle(ele).height) console.log(window.getComputedStyle(ele).fontSize) console.log(window.getComputedStyle(ele)['background-color'])
語法:元素.style.樣式名 = 樣式值ele.style.backgroundColor = 'red'
操作元素類名
原生屬性的操作
因為 JS 內(nèi)有一個關(guān)鍵子叫做class,為了避開改名叫做className
注意:類名的值是一個字符串, 但是字符串中可能包含多個類名
每一個 元素節(jié)點 身上自帶一個屬性叫做classList
是一個類似素組的數(shù)據(jù)結(jié)構(gòu),存放的是該元素的所有類名
增刪改查都是對 classList 的操作,給出專用的api
增:元素.classList.add(類名)
刪:元素.classList.remove(類名)
切換:元素.classList.toggle(類名)
-原先有就刪除,原先沒有就增加