getElementsByClassName を使用した要素スタイルの変更
getElementsByClassName を使用すると、同じクラス名を持つ複数の要素を選択できます。この例では、コードは、特定のクラス名を持つすべての div の外側でイベントが発生したときに、その div の背景色を変更することを目的としています。
問題診断
提供されたコードにはいくつかの問題があります:
解決策
これらの問題を解決するには、次の修正されたコードを使用できます。
<code class="javascript">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 < elements.length; i++) { elements[i].style.backgroundColor = color; } }</code>
この修正されたコードでは、次のようになります。
追加メモ
最適なパフォーマンスを得るには、要素のコレクションをキャッシュする代わりに、要素のコレクションをキャッシュすることを検討してください。毎回再クエリします。さらに、CSS クラスとイベント リスナーを使用してスタイルを変更すると、インライン属性を使用するより効率的です。
以上がgetElementsByClassName を正しく使用し、イベントに基づいて要素スタイルを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。