JavaScript中DOM常見的操作匯總
常見的DOM操作
1.獲取元素:
document.getElementById(id): 根據(jù)元素的id屬性獲取元素。
document.getElementsByClassName(className): 根據(jù)元素的class屬性獲取元素。
document.getElementsByTagName(tagName): 根據(jù)元素的標(biāo)簽名獲取元素。
document.querySelector(selector): 根據(jù)選擇器獲取第一個(gè)匹配的元素。
document.querySelectorAll(selector): 根據(jù)選擇器獲取所有匹配的元素。
2.創(chuàng)建元素:
document.createElement(tagName): 創(chuàng)建一個(gè)指定標(biāo)簽名的元素節(jié)點(diǎn)。
document.createTextNode(text): 創(chuàng)建一個(gè)包含指定文本內(nèi)容的文本節(jié)點(diǎn)。
3.修改元素屬性和內(nèi)容:
element.setAttribute(name, value): 設(shè)置元素的屬性值。
element.getAttribute(name): 獲取元素的屬性值。
element.innerHTML: 設(shè)置或獲取元素的HTML內(nèi)容。
element.innerText: 設(shè)置或獲取元素的文本內(nèi)容。
4.添加和刪除元素:
parentElement.appendChild(newChild): 將一個(gè)新的子節(jié)點(diǎn)添加到指定父節(jié)點(diǎn)的子節(jié)點(diǎn)列表的末尾。
parentElement.removeChild(child): 從指定父節(jié)點(diǎn)的子節(jié)點(diǎn)列表中刪除一個(gè)子節(jié)點(diǎn)。
5.修改元素樣式:
element.style.property = value: 設(shè)置元素的CSS樣式屬性值。
6.添加事件監(jiān)聽器:
element.addEventListener(event, listener): 給元素添加一個(gè)事件監(jiān)聽器。
element.removeEventListener(event, listener): 移除元素的一個(gè)事件監(jiān)聽器。
7.查詢和修改元素的位置和尺寸:
element.getBoundingClientRect(): 獲取元素相對(duì)于視口的位置和尺寸信息。
element.offsetTop: 獲取元素相對(duì)于其父元素的垂直偏移量。
element.offsetLeft: 獲取元素相對(duì)于其父元素的水平偏移量。
element.offsetWidth: 獲取元素的寬度(包括邊框和內(nèi)邊距)。
element.offsetHeight: 獲取元素的高度(包括邊框和內(nèi)邊距)。
這只是一些常見的DOM操作,還有很多其他操作可以根據(jù)具體需求進(jìn)行學(xué)習(xí)和使用。
常見的DOM操作的詳細(xì)代碼示例
1.獲取元素:
// 根據(jù)id獲取元素 const elementById = document.getElementById('myElement'); console.log(elementById); // 根據(jù)class獲取元素 const elementsByClass = document.getElementsByClassName('myClass'); console.log(elementsByClass); // 根據(jù)標(biāo)簽名獲取元素 const elementsByTagName = document.getElementsByTagName('div'); console.log(elementsByTagName); // 根據(jù)選擇器獲取元素 const elementBySelector = document.querySelector('.myClass'); console.log(elementBySelector); const elementsBySelectorAll = document.querySelectorAll('.myClass'); console.log(elementsBySelectorAll);
結(jié)果示例:
<div id="myElement"></div>
HTMLCollection [div.myClass, div.myClass]
HTMLCollection [div, div, div]
<div class="myClass"></div>
NodeList [div.myClass, div.myClass]
2.創(chuàng)建元素:
// 創(chuàng)建元素節(jié)點(diǎn) const newElement = document.createElement('div'); newElement.textContent = 'New Element'; console.log(newElement); // 創(chuàng)建文本節(jié)點(diǎn) const newText = document.createTextNode('New Text'); console.log(newText);
結(jié)果示例:
<div>New Element</div>
New Text
3.修改元素屬性和內(nèi)容:
// 創(chuàng)建元素節(jié)點(diǎn) const newElement = document.createElement('div'); newElement.textContent = 'New Element'; console.log(newElement); // 創(chuàng)建文本節(jié)點(diǎn) const newText = document.createTextNode('New Text'); console.log(newText);
結(jié)果示例:
123
<span>Hello</span> World
Hello, Vue!
4.添加和刪除元素:
const parentElement = document.getElementById('parentElement'); // 添加子節(jié)點(diǎn) const newChild = document.createElement('div'); newChild.textContent = 'New Child'; parentElement.appendChild(newChild); console.log(parentElement); // 刪除子節(jié)點(diǎn) parentElement.removeChild(newChild); console.log(parentElement);
結(jié)果示例:
<div id="parentElement">
<div>New Child</div>
</div>
<div id="parentElement"></div>
5.修改元素樣式:
const element = document.getElementById('myElement'); // 設(shè)置樣式屬性值 element.style.backgroundColor = 'red'; element.style.color = 'white'; console.log(element.style);
結(jié)果示例:
{
backgroundColor: 'red',
color: 'white'
}
6.添加事件監(jiān)聽器:
const button = document.getElementById('myButton'); // 添加點(diǎn)擊事件監(jiān)聽器 button.addEventListener('click', () => { console.log('Button clicked'); }); // 移除點(diǎn)擊事件監(jiān)聽器 const clickListener = () => { console.log('Button clicked'); }; button.addEventListener('click', clickListener); button.removeEventListener('click', clickListener);
結(jié)果示例:
Button clicked
7.查詢和修改元素的位置和尺寸:
const element = document.getElementById('myElement'); // 獲取位置和尺寸信息 const rect = element.getBoundingClientRect(); console.log(rect); // 獲取垂直偏移量 console.log(element.offsetTop); // 獲取水平偏移量 console.log(element.offsetLeft); // 獲取寬度和高度 console.log(element.offsetWidth); console.log(element.offsetHeight);
結(jié)果示例:
DOMRect {
bottom: 100,
height: 50,
left: 100,
right: 200,
top: 50,
width: 100,
x: 100,
y: 50
}
50
100
100
50
這些示例展示了一些常見的DOM操作,你可以根據(jù)具體需求進(jìn)行學(xué)習(xí)和使用。
DOM操作的使用場(chǎng)景
1.獲取元素:
使用場(chǎng)景:當(dāng)需要獲取特定元素或一組元素時(shí),可以使用getElementById、getElementsByClassName、getElementsByTagName、querySelector和querySelectorAll等方法。
優(yōu)點(diǎn):方便快捷地獲取所需的元素。
缺點(diǎn):在大型DOM結(jié)構(gòu)中,使用這些方法可能會(huì)導(dǎo)致性能問題。
2.創(chuàng)建元素:
使用場(chǎng)景:當(dāng)需要在DOM中動(dòng)態(tài)創(chuàng)建新的元素節(jié)點(diǎn)或文本節(jié)點(diǎn)時(shí),可以使用createElement和createTextNode方法。
優(yōu)點(diǎn):可以靈活地創(chuàng)建新的元素節(jié)點(diǎn)和文本節(jié)點(diǎn)。
缺點(diǎn):頻繁創(chuàng)建新的元素節(jié)點(diǎn)可能會(huì)影響性能。
3.修改元素屬性和內(nèi)容:
使用場(chǎng)景:當(dāng)需要修改元素的屬性值、HTML內(nèi)容或文本內(nèi)容時(shí),可以使用setAttribute、getAttribute、innerHTML和innerText等方法。
優(yōu)點(diǎn):可以方便地修改元素的屬性和內(nèi)容。
缺點(diǎn):使用innerHTML和innerText方法可能存在安全性問題,因?yàn)樗鼈兛梢詧?zhí)行任意的HTML和腳本代碼。
4.添加和刪除元素:
使用場(chǎng)景:當(dāng)需要將新的元素添加到DOM中或從DOM中刪除元素時(shí),可以使用appendChild和removeChild方法。
優(yōu)點(diǎn):可以靈活地添加和刪除元素。
缺點(diǎn):頻繁添加和刪除元素可能會(huì)影響性能。
5.修改元素樣式:
使用場(chǎng)景:當(dāng)需要修改元素的樣式時(shí),可以通過設(shè)置元素的style屬性來實(shí)現(xiàn)。
優(yōu)點(diǎn):可以動(dòng)態(tài)地改變?cè)氐臉邮健?/p>
缺點(diǎn):使用style屬性直接操作樣式可能會(huì)導(dǎo)致代碼混亂和難以維護(hù)。
6.添加事件監(jiān)聽器:
使用場(chǎng)景:當(dāng)需要在特定事件發(fā)生時(shí)執(zhí)行特定操作時(shí),可以使用addEventListener和removeEventListener方法添加和移除事件監(jiān)聽器。
優(yōu)點(diǎn):可以方便地添加和移除事件監(jiān)聽器。
缺點(diǎn):如果添加的事件監(jiān)聽器過多或處理的邏輯復(fù)雜,可能會(huì)導(dǎo)致性能問題。
7.查詢和修改元素的位置和尺寸:
使用場(chǎng)景:當(dāng)需要獲取元素在視口中的位置和尺寸,或者需要獲取元素相對(duì)于父元素的位置和尺寸時(shí),可以使用getBoundingClientRect、offsetTop、offsetLeft、offsetWidth和offsetHeight等屬性和方法。
優(yōu)點(diǎn):可以方便地獲取元素的位置和尺寸信息。
缺點(diǎn):頻繁查詢和修改元素的位置和尺寸可能會(huì)影響性能。
這些是常見的DOM操作的使用場(chǎng)景和優(yōu)缺點(diǎn),根據(jù)具體的需求和情況選擇合適的操作方式。在使用DOM操作時(shí),需要注意性能問題和安全性問題,避免頻繁操作DOM或執(zhí)行不安全的操作。
到此這篇關(guān)于JavaScript中DOM常見的操作匯總的文章就介紹到這了,更多相關(guān)JavaScript DOM內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CSS和Javascript簡(jiǎn)單復(fù)習(xí)資料
CSS和Javascript簡(jiǎn)單復(fù)習(xí)資料,學(xué)習(xí)css與js的朋友可以參考下。2010-06-06完美實(shí)現(xiàn)js拖拽效果 return false用法詳解
這篇文章主要為大家詳細(xì)介紹了完美實(shí)現(xiàn)js拖拽效果的代碼,一起學(xué)習(xí)return false的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07使用Cookies保存網(wǎng)站歷史瀏覽記錄實(shí)例代碼
仿淘寶網(wǎng)的最近瀏覽記錄功能,喜歡的朋友可以參考下。2010-07-07微信小程序新增的拖動(dòng)組件movable-view使用教程
這篇文章主要給大家介紹了微信小程序最近新增的拖動(dòng)組件movable-view的簡(jiǎn)單使用教程,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05JavaScript優(yōu)化專題之Loading and Execution加載和運(yùn)行
這篇文章主要介紹了JavaScript優(yōu)化專題中Loading and Execution加載和運(yùn)行的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01