使用 getElementsByClassName 更改元素樣式
getElementsByClassName 讓您選擇具有相同類別名稱的多個元素。在給出的範例中,程式碼旨在當事件發生在具有特定類別名稱的所有 div 之外時更改這些 div 的背景顏色。
問題診斷
The提供的程式碼有一些問題:
解決方案
要解決這些問題,可以使用以下更正後的程式碼:
window.onload = function() {
var aElements = document.getElementsByClassName('a');
var bElements = document.getElementsByClassName('b');
document.getElementById('A').addEventListener('mouseover', function() {
changeColor(aElements, 'red');
});
document.getElementById('B').addEventListener('mouseover', function() {
changeColor(bElements, 'blue');
});
};
function changeColor(elements, color) {
for (var i = 0; i 在此更正後的程式碼中:
- 我們循環遍歷 getElementsByClassName 傳回的集合以更改所有匹配元素的樣式。
- 我們使用不帶空格的正確 ID來識別觸發元素。
- 我們定義changeColor函數以將所需的顏色變更套用至元素。
附加說明
為了獲得最佳效能,請考慮快取元素集合,而不是每次都重新查詢它。此外,使用 CSS 類別和事件偵聽器進行樣式變更比內聯屬性更有效。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3