LoginSignup
0
0

More than 3 years have passed since last update.

DOM操作を合言葉で理解しよう

Posted at

はじめに

JavaScriptについては初投稿。学習3日目。理解に時間がかかったところを中心にまとめる。とにかく、新しい言葉が多くて、中々頭に入らない。

JavaScriptで何ができるの?

 HTMLを操作できる。操作とは、背景色を変えたり、プルダウンメニューを表示させたり。今回はそのHTMLの操作について少し説明をする。

DOM

 DOMとはDocument Object Modelの略で、HTMLのデータを解析して、データを作成する仕組みのこと。JavaScript(以降、JS)では、DOMを操作することでHTMLを操作している。

 操作についてコードを書くときに、必要な合言葉がある(自作)

〇〇に、△△したら、□□する

つまり、「ユーザーが何をした時に、どんな動きをするのか」をJSで操作をする。
以下、この合言葉を意識しながら、説明していく。

○○に

操作をするにしても、どこに操作をするのか、JSで定義をしてあげなければならない。そこで、HTMLから何を頼りにするかだ。
 id名やclass名は指定すれば、簡単に要素にたどり着くことができる。これは、CSSで装飾する感覚に似ている。

 documentオブジェクトのメソッドを使う。Documentオブジェクトはブラウザにある、windowオブジェクトの一つ。ブラウザ上で表示された、情報を操作することができる。
getElementById("id名")
→HTMLから( )に入れたid名の要素を取得する。

getElementsByClassName("class名")

→HTMLから( )に入れたclass名の要素を取得する。
※Elementsと複数形になっている点に注意。同じclass名はいくつでもつけられるので、初めから複数個取得する想定。一方、同じid名は一つのHTMLファイルには存在し得ないので、Elementは単数形。

querySelectorAll("セレクタ名")
→HTMLから( )に入れたセレクタを全部取得する。
※Allを取ると、指定したセレクタの一つめだけを取り出すことになる。

const note = document.getElementById("text")

上記のコードは、HTMLファイルのidがtextの要素をnoteという変数に入れる、となる。documentオブジェクトの中のメソッドを使って、取得しているので、必ず、「document.」をつける。

一つ一つのメソッド名は長いが、どれもHTMLの要素を取得するだけの処理だと言うことを意識する。

△△したら

 ここでは、ユーザーが何をしたら、JSの処理が動くのかを定義する。具体的には、クリックをしたらやマウスのカーソルを合わせたらなどがある。

addEventListenerメソッドを使う。
要素.addEventListener("イベント",関数)
イベントとは、ブラウザ上で起きた出来事。単純にクリックしたや再読み込みしたなど。

要素とは、「〇〇に」のこと。

つまり、コードを書くと、


note.addEventListener("click",function(){})

先ほど定義したnote(HTML上でid="text"となっているもの)をクリックしたら、となる。

□□する

 ここでは、実際にHTMLに何かをさせる処理を説明していく。
具体例としては、

要素.setAttribute("属性","値")
→要素の開始タグの中に、属性と値を追加(値の変更)する。

要素.removeAttribute("属性","値")
→要素の開始タグの属性と値を削除する。

要素とは、「〇〇に」のこと。

まとめ

const note = document.getElementById("text")       #HTMLのidがtextに
 note.addEventListener("click",function(){         #クリックすると
 note.setAttribute("style","background-color:red") #背景色を赤にする
})

ポイント

  •  要素を取得する、イベントを指定する、動作させる。の3段階。
  •  ○○に、△△したら、□□する。

最後に

JSはコードが長くて、ごちゃごちゃするが、一つのコードが行っている処理は一つなので、落ち着いて読み解く。

合言葉に当てはまる言葉で、大喜利にしないで(笑

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0