Table of Contents
前回はjavascriptによる指定要素へのイベントリスナーの設定について紹介しました。
今回は、javascriptからDOMを利用して、ページ内のタグの属性を変更する方法を紹介します。
タグの属性操作サンプル
以下のサンプルソースコードでは、id属性に target という値を持つh1タグに、前回紹介したマウス操作に関する複数のイベントリスナーを付加しています。
これによって以下の動作が可能となっています。
- マウスが乗ったら「red」というclass属性を付加し、マウスが離れたらclass属性を削除します。
- クリックでstyle属性でフォントサイズを変更し、ダブルクリックでstyle属性を削除します。
class属性が「red」の要素は背景色が赤くなるようにCSSを設定しています。
サンプルソースコード
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>DOMによる属性の追加と削除</title> </head> <style> .red { background-color: red; } </style> <body> <h1 id="target">DOMによる属性の追加と削除</h1> </body> <script> // 要素をid属性を指定して取得 var target = document.getElementById("target"); target.addEventListener("mouseenter", function() { // マウスが重なったらclass属性を追加して値に「red」をセット target.setAttribute("class", "red"); }, false); target.addEventListener("mouseleave", function() { // マウスが離れたらclass属性を除去 target.removeAttribute("class"); }, false); target.addEventListener("click", function() { // クリックされたらstyle属性を直接書き換える target.setAttribute("style", "font-size: 48px;"); }, false); target.addEventListener("dblclick", function() { // ダブルクリックされたらstyle属性を除去 target.removeAttribute("style"); }, false); </script> </html>
サンプルの動作例
マウスが乗ると、class属性に「red」が付加され、マウスが離れると無くなります。
クリックでstyle属性の変更によってフォントサイズが大きくなり、ダブルクリックで元のフォントサイズに戻ります。
タグの属性を操作するメソッド
属性の追加 setAttribute
setAttribute で指定した要素に属性を追加できます。
target.setAttribute(属性名, 属性の値);
class属性に「red」という値をセットするには、以下のようにします。
target.setAttribute("class", "red");
今回のサンプルのように、あるclass属性にCSSでスタイルを設定しておけば、class属性をつけるだけでタグの装飾の変更を行うことができます。
2つ目の動作のように、style属性を直接編集することでもスタイルの変更は可能ですが、拡張性にかけるので通常はCSSを使うようにします。
属性の除去 removeAttribute
removeAttribute で指定した要素にある属性を削除できます。
target.removeAttribute(属性名);
削除は属性名だけを指定すればOKです。class属性を取り除くには以下のようにします。
target.removeAttribute("class");
以上でタグの属性をjavascriptから自由に変更できます。
次回はjavascriptで新しいタグを作ってページのHTMLに追加する方法について紹介します。
ピンバック: マウスのクリックや重なりに反応して要素を書き換える – DOMの利用(3) | JoyPlotドキュメント
ピンバック: javascriptでHTMLタグを新しくページに追加する DOMの利用(5) | JoyPlotドキュメント