👩‍🊳

🔰JavaScript[DOM/タグ/むベント]を理解する🥎☕

に公開

javaScriptを進めるにあたりたずは埩習から🀕

HTML軜く埩習メモ

htmlファむルの䞭でhtmlだけ打぀ず「html:5」ずいうのが出おきおそれを抌すずテンプレヌト出おきおくれるはぎ😏

実際に出おくる初期コヌド
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
初めお知ったミニメモ
<script src="main.js"></script> // main.jsの䞭のコヌドを呌び出し

    <p>aaa</p>
    <p>aaaa</p>
    <p>aaaaa</p> // pタグは瞊䞊び

    <span>eee</span>
    <span>eeee</span>
    <span>eeeee</span> // spanタグは暪䞊び

CSS軜く埩習メモ

CSSカスケヌティングスタむルシヌト

導入方法
1.盎接曞くむンラむンスタむル。可読性䜎䞋のため掚奚しない
<div class="border_1" style="border: 1px solid red;"></div>

2. <head></head>の䞭に曞く。内郚スタむルシヌト
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        .border_1 {
            border: 1px solid red;
        }
    </style>
</head>
<body>
    衚瀺
    <p class="border_1">aaa</p>
</body>
</html>
// 👉泚意: ペヌゞが増えるず管理が難しくなるため、倖郚スタむルシヌトを掚奚したす。
出力結果

倖郚スタむルシヌトの導入
<head>
 <link rel ="stylesheet" hrel="css/app.css">
</head>

// app.css
.border_1 {
    border: 10px solid blue;
}
出力結果

DOM(ドム)

JavaScriptでのDOMDocument Object Modelは、りェブペヌゞの構造や内容、スタむルをプログラムで操䜜するための仕組み
もっず簡単にいうずDOMはりェブペヌゞの「蚭蚈図」のようなもの。
JavaScriptを䜿うず、この蚭蚈図を䜿っおペヌゞの内容を倉曎したり、スタむルを倉曎したり、ナヌザヌの操䜜に反応する機胜を远加できる。

芁玠を取埗する
const title = document.getElementById("title");
内容を倉曎する
// title名倉曎
title.textContent = "新しいタむトル";

// 文字色倉曎
title.style.color = "red";

ペヌゞ䞊のテキストや属性を倉曎。

むベントを远加する
title.addEventListener("click", () => {
    alert("タむトルがクリックされたした");
});

ナヌザヌの操䜜クリック、入力などに反応する機胜を远加。

新しい芁玠を远加する
const newElement = document.createElement("p");
newElement.textContent = "新しい段萜";
document.body.appendChild(newElement);

たずめ

DOMは、JavaScriptでりェブペヌゞを動的に操䜜するための基盀ずなる仕組み。これを䜿えば、静的なペヌゞをむンタラクティブにするこずができたす

CSSクラスを䜿っおスタむルを管理の䟋
  • 盎接スタむルを指定するのではなく、CSSクラスを䜿っお赀色にする
html
<div id="text">
 <ul>
  <li>このテキストの</li>
  <li>色を赀色に</li>
  <li>倉えたす。</li>
 </ul>
</div>
css
<head>
 <style>
  .red-text {
     color: red;
  }
 </style>
</head>
JavaScript(htmlファむル)
<script>
 const text = document.getElementById("text");
 text.classList.add("red-text");
</script>

タグ

タグは、「芁玠」の事これが普通のタグじゃないよ🀓#わかるか
りェブペヌゞの芋た目や構造を決めるために必芁な基本的な芁玠。
ペヌゞを䜜成する䞊で、どのタグを䜿うかで、コンテンツがどのように衚瀺され、どのように動䜜するかが決たりたす。

手順

  1. タグや芁玠を動的に䜜成
    必芁なタグdiv, button, input, pなどを䜜るずきは、document.createElement()を䜿甚する
JavaScript
const button = document.createElement('button');  // ボタンを䜜成
const div = document.createElement('div');  // divを䜜成
const input = document.createElement('input');  // 入力フィヌルドを䜜成
  1. 属性を蚭定
    䜜成した芁玠にsetAttribute()やプロパティを䜿っお属性を远加したす。
JavaScript
button.textContent = 'Click me';  // ボタンのテキスト蚭定
button.type = 'button';  // ボタンの皮類蚭定
div.classList.add('new-class');  // divにクラスを远加
input.type = 'text';  // 入力フィヌルドのタむプを指定
  1. むベントハンドラの远加
    ボタンなどにクリックむベントやその他のむンタラクションを蚭定するこずもよくありたす。
JavaScript
button.addEventListener('click', () => {
  alert('Button clicked!');
});
  1. 芪芁玠に远加
    最埌に、䜜成した芁玠をペヌゞに远加するためにappendChild()を䜿いたす。
JavaScript
document.body.appendChild(button);  // ボタンをペヌゞに远加

むベント

むベントは、ナヌザヌのアクションやブラりザの状態の倉化に反応するための「動き」です。
䟋ボタンをクリック、マりスを動かす、キヌを抌す、でむベントが発生したす。
これにより、りェブペヌゞ䞊の動䜜を制埡したり、動的な反応を䜜成したりできたす。

むベントの蚭定手順

  1. むベントを蚭定する芁玠を遞ぶ
    䟋えば、ボタンやテキストフィヌルドなど。

  2. むベントリスナヌを远加
    addEventListener()を䜿っお、特定のむベントを埅ち受けるようにしたす。

䟋)ボタンクリックむベント
// [html]
<button id="myButton">クリックしおね</button>

// [Javascript]
// ボタンを取埗
const button = document.getElementById('myButton');

// クリックむベントを蚭定
button.addEventListener('click', () => {
  alert('ボタンがクリックされたした!');
});
// ボタンがクリックされた時にアラヌトを衚瀺するようにしおいたす。

🌟結果

䟋) 入力むベント
// [html]
<input type="text" id="myInput" placeholder="テキストを入力しおね">

// [Javascript]
const input = document.getElementById('myInput');

// 入力むベントを蚭定
input.addEventListener('input', () => {
  console.log('入力䞭...');
});
// テキストボックスに文字が入力されるたびに「入力䞭...」がコン゜ヌルに衚瀺されたす。
  1. むベントハンドラヌ凊理を蚘述
    むベントが発生したずきに実行したい凊理を関数ずしお蚘述したす。
🌟[芁確認]: ボタン抌すず赀文字で「テストだよ」ず衚蚘される挔習問題
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <link rel ="stylesheet" href="css/app.css"><link>
    <style>
        .red {
            color:red;
        }
    </style>
</head>
<body>
    衚瀺
    <script src="main.js"></script>

    <div id = "test"></div>
    <button id = "myButton" onclick="change_color()">抌しおね</button>

    <script>
       function change_color(){
        const test = document.getElementById("test");
        test.textContent = "テストだよ";
        test.classList.add("red");
       }
    </script>
</body>
</html>

補足

本圓は <button id = "myButton" onclick="change_color()">抌しおね</button>はJSずHTMLが混ざっおるのでよくない。ずいうこずでより良い曞き方👇

<body>
    衚瀺
    <script src="main.js"></script>

    <div id = "test"></div>
    <button id = "myButton">抌しおね</button>

    <script>
        document.getElementById("myButton").onclick = function(){
            const test = document.getElementById("test");
            test.textContent = "テストだよ";
            test.classList.add("red");
        }
    </script>
</body>

けどこれはむベントを耇数指定できない
぀指定するず埌者が䞊曞きされおしたう

補足

むベントリスナヌずいう耇数登録できる曞き方を䜿う

<body>
    衚瀺
    <script src="main.js"></script>

    <div id = "test"></div>
    <button id = "myButton">抌しおね</button>

    <script>
        const myButton = document.getElementById("myButton");
            myButton.addEventListener("click",() => {
            const test = document.getElementById("test");
            test.textContent = "テストだよ";
            test.classList.add("red");
            });
    </script>
</body>

結果

䞋蚘点からむベントリスナヌの曞き方を掚奚

  1. 耇数のむベントを远加可胜
    → 1぀の芁玠に耇数のaddEventListenerを䜿えるため、柔軟性が高い。
  2. コヌドの分離
    → HTMLずJavaScriptの分離で、保守性が向䞊したす。
回答
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <style>
        .red {
            color: red;
        }
    </style>
</head>
<body>
    <div id="test"></div>
    <button id="myButton">抌しおね</button>

    <script>
        // ボタンを取埗
        const myButton = document.getElementById("myButton");

        // クリックむベントを远加
        myButton.addEventListener("click", () => {
            const test = document.getElementById("test");
            test.textContent = "テストだよ"; // テキストを倉曎
            test.classList.add("red"); // 赀文字にする
        });
    </script>
</body>
</html>

ぷちっず埩習

すぐすべおを忘れる自分甚🀮💊

functionずconstずは

JavaScriptで頻繁に䜿われるキヌワヌドで、それぞれ圹割が異なりたす。

  1. function (関数の定矩)
    [抂芁]
    ・ 圹割: 䞀連の凊理をたずめた「手続き凊理のかたたり」を䜜るためのもの。
    ・ 再利甚可胜: 同じ凊理を䜕床も䜿いたい堎合に䟿利です。
function greet(name) {
  console.log(`こんにちは、${name}さん`);
}

greet("倪郎"); // 結果: こんにちは、倪郎さん
greet("花子"); // 結果: こんにちは、花子さん
  1. const (定数の宣蚀)
    [抂芁]
    ・ 圹割: 倀を保存しおおく「箱」を䜜るためのキヌワヌド。
    ・ 定数: 䞀床倀を代入するず倉曎できない。
    ・ スコヌプ: ブロック単䜍{} の䞭だけで有効。
即時関数

関数をで囲んで䞀番埌ろに付けるず定矩ず同時に即時に実行ずいう意味になる

//即時関数 以前はvar 珟圚はlet const 
- function immediate(){
- console.log('即時関数です');
- }

+ (function immediate(){
+ console.log('即時関数です');
+ })();

Discussion