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