こんにちはつるぴよ(@tsurupiyoo)です。
現在もりけん塾()でJavaScriptの勉強中です。
今回はJavaScriptのDOM操作についてあらためてまとめていこうと思います!
JavaScriptの基本は一通り学んだけど実戦でどう使うのか知りたい。
DOM操作ってどういうことなのか理解したい。
要素の追加をするための基本的なコードの書き方が知りたい。
DOM操作ってなんのためにするの??
「DOM」操作とは、JavaScriptからHTMLにアクセスするための窓口のようなものです。
これを使ってJavaScriptの方からHTMLの要素の値を取得したり変更することです。
「HTML」「CSS」「JavaScript」の役割はそれぞれ異なっています。
HTML→骨組み
CSS→筋肉や皮膚、見た目
JavaScript→手をどうやって動かすのか?足をどうやって動かすのか?
このようにJavaScriptはユーザーから見たWebページの動きの部分を作ります。
・入力したデータを取得する
JavaScriptのDOM操作のやり方をみていこう!
例えばHTMLでこんなコードを書くとします。
<ul> <li><a href="dog.html"><img src="img/dog.jpeg" alt="画像1">dog</li> <li><a href="pengin.html"><img src="img/pengin.jpeg" alt="画像2">pengin</li> </ul>
ブラウザ表示するとこうなります
これをHTMLを使わず、JavaScriptのDOM操作だけで要素を追加して作成します!
querySelectorで要素を取得しよう
さっき書いた「HTML」の内容は一旦消して、下記のように
<ul><ui>
「ul」だけにします。
これから色々コードを書くのは<script>タグの中です。
まずは「querySelector」を使ってJavaScriptからHTMLの「ul」要素を取得しましょう!
取得したものを変数「ul」に詰め込みます。
let ul = document.querySelector("ul");
配列データにまとめてforEachメソッドでループ処理をしよう
次に「href」・「テキスト」・「img」を配列データにまとめます。
[ {href : "dog" , text : "dog" , src : "img/d.jpeg", alt: "画像1"} , {href: "pengin" , text : "pengin" , src : "img/p.jpeg", alt: "画像2"}]
この配列を「forEach」メソッドを使って扱っていきます。
実際に書いてみると以下の通りです。
forEach((e) => { //createElementを使って要素を作ります let li = document.createElement("li"); let a = document.createElement("a"); let img = document.createElement("img"); //作り出した要素に配列のデータを詰め込みます li.textContent = e.text; a.href = e.href; img.src = e.src; img.alt = e.alt; //最初に指定した(ul)要素にappendChildを使って作った要素を追加していきます ul.appendChild(li).appendChild(a).appendChild(img); });
上記を部分ごとに解説していきます。
createElement()で要素を作る
let li = document.createElement("li"); let a = document.createElement("a"); let img = document.createElement("img");
この部分で各要素を作り出しています。
変数宣言をしてその中に作り出した要素を詰め込んでいます。
こうして「li」「a」「img」要素をJavaScriptで作ります。
作り出した要素に配列のデータを入れる
li.textContent = e.text; a.href = e.href; img.src = e.src; img.alt = e.alt;
console.log()を使って「e.text」の中身を確認してみると
配列の中で「text」で指定した「dog」「pengin」が入っているのがわかります。
なので先ほど作成した変数「li」の「textContent」の中に配列データの「e.text」を入れます。
その他の要素にも同じように作っていきます。
appendChildを使って要素を追加しよう
ul.appendChild(li).appendChild(a).appendChild(img);
「appendChild」は特定の親要素の中に要素を追加するメソッドです。
要素を指定すると、その要素を子要素としてHTMLタグを追加することができます。
指定した親要素の末尾に子要素が追加されます。
今回の例では、最初に「querySelector」で取得した「ul」要素を親要素として「ul.appendChild」として「li」「a」「img」を追加しています。
こうして最初にHTMLで作成したものをJavaScriptで作り出すことができます。
JavaScriptのDOM操作 まとめ
JavaScriptのDOM操作は基本中の基本なのでしっかり押さえて置いた方が良いです!
今回は学習したことを忘備録としてまとめました。
*JavaScript講師「森田賢二」さん
ブログ「武骨日記」はこちらから
Twitterフォローはこちらから