JavaScript中的DOM是怎樣的,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
在海倫等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營(yíng)銷,成都外貿(mào)網(wǎng)站制作,海倫網(wǎng)站建設(shè)費(fèi)用合理。
其實(shí)就是操作 html 中的標(biāo)簽的一些能力
我們可以操作哪些內(nèi)容
獲取一個(gè)元素
移除一個(gè)元素
創(chuàng)建一個(gè)元素
向頁(yè)面里面添加一個(gè)元素
給元素綁定一些事件
獲取元素的屬性
給元素添加一些 css 樣式
...
DOM 的核心對(duì)象就是 docuemnt 對(duì)象
document 對(duì)象是瀏覽器內(nèi)置的一個(gè)對(duì)象,里面存儲(chǔ)著專門用來操作元素的各種方法
DOM: 頁(yè)面中的標(biāo)簽,我們通過 js 獲取到以后,就把這個(gè)對(duì)象叫做 DOM 對(duì)象
通過 js 代碼來獲取頁(yè)面中的標(biāo)簽
獲取到以后我們就可以操作這些標(biāo)簽了
getElementById 是通過標(biāo)簽的 id 名稱來獲取標(biāo)簽的
因?yàn)樵谝粋€(gè)頁(yè)面中 id 是唯一的,所以獲取到的就是一個(gè)元素
var box = document.getElementById('box')
console.log(box) //
獲取到的就是頁(yè)面中的那個(gè) id 為 box 的 div 標(biāo)簽
getElementsByClassName 是用過標(biāo)簽的 class 名稱來獲取標(biāo)簽的
因?yàn)轫?yè)面中可能有多個(gè)元素的 class 名稱一樣,所以獲取到的是一組元素
哪怕你獲取的 class 只有一個(gè),那也是獲取一組元素,只不過這一組中只有一個(gè) DOM 元素而已
var box = document.getElementsByClassName('box')
console.log(box) // [] console.log(box[0]) //
獲取到的是一組元素,是一個(gè)長(zhǎng)得和數(shù)組一樣的數(shù)據(jù)結(jié)構(gòu),但是不是數(shù)組,是偽數(shù)組
這個(gè)一組數(shù)據(jù)也是按照索引排列的,所以我們想要準(zhǔn)確的拿到這個(gè) div,需要用索引來獲取
getElementsByTagName 是用過標(biāo)簽的 標(biāo)簽 名稱來獲取標(biāo)簽的
因?yàn)轫?yè)面中可能有多個(gè)元素的 標(biāo)簽 名稱一樣,所以獲取到的是一組元素
哪怕真的只有一個(gè)這個(gè)標(biāo)簽名,那么也是獲取一組元素,只不過這一組中只有一個(gè) DOM 元素而已
var box = document.getElementsByTagName('div')
console.log(box) // [] console.log(box[0]) //
和 getElementsByClassName 一樣,獲取到的是一個(gè)長(zhǎng)得很像數(shù)組的元素
必須要用索引才能得到準(zhǔn)確的 DOM 元素
querySelector 是按照選擇器的方式來獲取元素
也就是說,按照我們寫 css 的時(shí)候的選擇器來獲取
這個(gè)方法只能獲取到一個(gè)元素,并且是頁(yè)面中第一個(gè)滿足條件的元素
console.log(document.querySelector('div')) // 獲取頁(yè)面中的第一個(gè) div 元素 console.log(docuemnt.querySelector('.box')) // 獲取頁(yè)面中第一個(gè)有 box 類名的元素console.log(document.querySelector('#box')) // 獲取頁(yè)面中第一個(gè) id 名為 box 的元素
querySelectorAll 是按照選擇器的方式來獲取元素
這個(gè)方法能獲取到所有滿足條件的元素,以一個(gè)偽數(shù)組的形式返回
console.log(document.querySelectorAll('div')) // 獲取頁(yè)面中的所有的 div 元素 console.log(docuemnt.querySelectorAll('.box')) // 獲取頁(yè)面中所有有 box 類名的元素
獲取到的是一組數(shù)據(jù),也是需要用索引來獲取到準(zhǔn)確的每一個(gè) DOM 元素
通過我們各種獲取元素的方式獲取到頁(yè)面中的標(biāo)簽以后
我們可以直接操作 DOM 元素的屬性,就能直接把效果展示在頁(yè)面上
獲取元素內(nèi)部的 HTML 結(jié)構(gòu)
hello
var div = document.querySelector('div')
console.log(div.innerHTML)
/* hello
設(shè)置元素的內(nèi)容
var div = document.querySelector('div')
div.innerHTML = '
hello
'
設(shè)置完以后,頁(yè)面中的 div 元素里面就會(huì)嵌套一個(gè) p 元素
獲取元素內(nèi)部的文本(只能獲取到文本內(nèi)容,獲取不到 html 標(biāo)簽)
hello
var div = document.querySelector('div')
console.log(div.innerText) // hello
可以設(shè)置元素內(nèi)部的文本
var div = document.querySelector('div')
div.innerText = '
hello
'
設(shè)置完畢以后,會(huì)把
hello
當(dāng)作一個(gè)文本出現(xiàn)在 div 元素里面,而不會(huì)把 p 解析成標(biāo)簽獲取元素的某個(gè)屬性(包括自定義屬性)
var div = document.querySelector('div')
console.log(div.getAttribute('a')) // 100 console.log(div.getAttribute('class')) // box
給元素設(shè)置一個(gè)屬性(包括自定義屬性)
var div = document.querySelector('div')
div.setAttribute('a', 100)
div.setAttribute('class', 'box')
console.log(div) //
直接移除元素的某個(gè)屬性
var div = document.querySelector('div')
div.removeAttribute('class')
console.log(div) //
專門用來給元素添加 css 樣式的
添加的都是行內(nèi)樣式
var div = document.querySelector('div')
div.style.width = "100px"
div.style.height = "100px"
div.style.backgroundColor = "pink"
console.log(div)
//
頁(yè)面中的 div 就會(huì)變成一個(gè)寬高都是100,背景顏色是粉色
專門用來操作元素的 類名的
var div = document.querySelector('div')
console.log(div.className) // box
也可以設(shè)置元素的類名,不過是全覆蓋式的操作
var div = document.querySelector('div')
div.className = 'test'
console.log(div) //
在設(shè)置的時(shí)候,不管之前有沒有類名,都會(huì)全部被設(shè)置的值覆蓋
看完上述內(nèi)容,你們掌握J(rèn)avaScript中的DOM是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!