前回はDOMのノードについて解説しました。
DOMの扱い方に慣れたところで、次は中身に入っていきます。
DOMは書き換えたり、更新したりする以外にもHTMLの属性も変更することが可能です。今回はDOMから要素を追加、書き換える方法を解説していきます。
属性の説明
まず、この解説を始めるにあたって、属性について軽く説明していきたいと思います。属性というのは、HTMLのタグ要素に紐づけるものです。
HTMLのタグ要素というのは例として下記になります。
これらがタグ要素になります。
これに対して、属性はタグに様々な副次的な要素をもたらします。以下が属性の例となります。
これらの属性は要素に名前やidを振って、要素を特定できたりなどほかにも様々なことができます。今回はこの属性についてフォーカスしていきます。
DOM要素の属性の操作
要素の属性の取得
最初に、DOM要素の属性を取得する方法について解説します。DOM要素を取得する方法は同じくDOM要素を取得し、メソッドを使います。
最初に、HTMLファイルを用意します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width = device-width ,initial-scale = 1" />
<meta name="robots" content="noindex,nofollow" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>
JavaScript入門講座
</title>
<script>
</script>
</head>
<body>
<h1>DOM入門</h1>
<div id="js-div">
<p id="js-rest" class="cs-rest">Rest API</p>
<p id="js-graph" class="cs-graph">GraphQL</p>
</div>
<script src="script.js"></script>
</body>
</html>
const doc = document;
const jsRest = doc.getElementById("js-rest");
const jsGraph = doc.getElementById("js-graph");
const div = doc.getElementById("js-div");
console.log(jsRest.getAttribute("id"));
console.log(jsGraph.getAttribute("class"));
console.log(jsRest.id);
console.log(jsGraph.className);
index.htmlファイルをブラウザで開いてみましょう。その後、ディベロッパー・ツールを開いてみましょう。
要素の属性と属性の値がコンソールに出力されていることがわかると思います。
要素属性(setAttribute)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width = device-width ,initial-scale = 1" />
<meta name="robots" content="noindex,nofollow" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>
JavaScript入門講座
</title>
<script>
</script>
</head>
<body>
<h1>DOM入門</h1>
<div id="div">
<p id="js-engel">エンゲル係数 10.13</p>
<p id="js-rg">R > G </p>
</div>
<script src="script.js"></script>
</body>
</html>
const doc = document;
const engel = doc.getElementById("js-engel");
const rg = doc.getElementById("js-rg");
let attribute = doc.createAttribute("lang");
attribute.value = "jp";
jsRest.setAttributeNode(attribute);
attribute = doc.createAttribute("class");
attribute.value = "cs-div";
div.setAttributeNode(attribute);
engel.setAttribute("class","cs-engel");
rg.setAttribute("id","alt-id");
engel.target.value = "_brank";
再度、index.htmlファイルをブラウザで開いてディベロッパー・ツールを開いてみましょう。HTML要素にない属性が追加されていることがわかると思います。
setAttributeは属性を付加させるメソッドになります。これを使うことによって、後天的JavaScriptで属性を付加させることが可能です。
まとめ
では、今回のまとめに入ります。
今回は下記のようなことを学びました。
では、今回はここまでとなります。
お疲れ様でした。
参考文献
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/
JavaScript Primer - 迷わないための入門書 #jsprimer
JavaScriptの基本的な書き方からアプリケーションの作成などのユースケースを学ぶための入門書です
属性の操作|JavaScriptによるDOM操作入門
要素の属性値を取得・設定(getAttribute,setAttribute)
HTML のタグには id 属性や class 属性といった属性を設定することができます。属性はすべてのタグで利用できるものと特定のタグだけで利用できるものがあり、 JavaScript からはプロパティまたはメソッドを使って属性値を参照したり新しい値を設定することができます。ここでは要素ノードに対して属性名を指定して...