🖥️
JavaScriptを理解していく
記事を作るきっかけ
- 今回はJavaScript→Reactと学んできたが、ReactのHooksやNext.js(App router)で詰んだので、まだJavaScriptの理解が浅いと思い、この記事を残そうと思いました。
- ここまで1か月と短い期間だったのでこのようになるのも当然かなと。
JavaScriptの役割
- 画面の動的な要素を担っている
- ボタンクリックによるアクション- 画面内でのテキストの編集機能など
- Todoリストの機能、タスク管理機能など
DOM
- documentオブジェクトがDOMの世界へのエントリーポイントとなっている
- その中にプロパティやメソッドが用意されている
- documentオブジェクトが読み込まれると、その中にJavaScriptオブジェクトも生成される
- 直接HTMLを触らずにJavaScript(プロパティ)で操作することをDOM操作とする
document.getElementById(メソッド)
- 返ってくる要素は、あくまでJSオブジェクトとして返ってくる
- オブジェクトの中にあるgetElementByIdというプロパティに要素がついてくる
- idをもとに返ってきた要素を変数に入れる
document.getElementsByTagName
- タグ要素を返す
- HTMLCollection[]で返ってくる
- 配列ではなく、1つ1つの要素である
- mapメソッドは使えず、for~of文で書く


document.getElementsByClassName
- TagNameと同じでClassNameを属性として持ってる要素を返す
document.querySelector(All)
- 指定したタグの1番目を返す
- すべてのタグの要素を返すことができる(Allも付けた場合)
- :nth-of-type(*)で *番目の要素を返す
- 'a[title="アンパンマン"]'のように細かく指定して返すことができる



演習やってみた
- クラス指定してそのクラスの要素をすべて返す
- 複数ある要素の中でもあるtype属性だけを返す

プロパティを使って書き換えてみる
- innerText
- 見えているものすべての文字を返す
- textContent
- 見えていないスペースや改行なども返す
- innerHTML
- タグ要素もセットで返す
- タグ要素もセットで返す
- spanタグの要素を取得し、innerHTMLプロパティを使って書き換える

- getAttribute
- 属性の値を返す
- setAttribute
- 変数.setAttribute(属性,変更後の属性の値) で属性の更新ができる)
- 変数.setAttribute(属性,変更後の属性の値) で属性の更新ができる)

タグのstyleオブジェクト
-
返ってきたタグ要素の中にstyleオブジェクトがあり、インライン要素で直接CSSをあてるやり方
- 直接インラインにCSSをあてることは、使いまわしができないし、可読性が落ちるので本番環境には向かない
-
演習やってみる


タグにclassをつけてCSSをあてる
- classList.add("クラス名")でクラスのCSSをあてることできる
- .removeで削除できる
- .toggleであててるクラスを外したりつけたりできる
- setAttlibuteでクラスにあてるより楽にできる
.parentElementと.children
- parentElementは指定した要素の親要素を返す
- childrenは指定した要素の子要素を返す
nextElementsiblingとpreviousElementsibling
- 同じ兄弟要素内の前後の要素を返す
- ※ Elementをつけないと前後のノードを返すので注意
JSからボタンを100個追加する演習
- 最低限のことをAIに投げて、コードは自分で書く
- これだけなのにすぐ作れなかった
removeとremoveChild
- remove
- 指定したタグ要素を削除
- removeChild
- 指定したタグ要素の子要素を削除
- 削除するときはparentElementで親を呼んでセットで書く
演習でポケモン図鑑作成


Discussion