🐙

【JavaScript】HTMLを操作

に公開
  • 要素を取得して、操作する

イベントリスナーを追加

// querySelectoor 要素を選択
// addEventLister 最初にイベントの種類を、2番目に処理内容を渡す
document.querySelector('button').addEventLister('click', () => {
    // textContent 値をセットする
    document.querySelector('p').textContent = 'こんにちは';

    // textContentは、値を取得するのにも使える
    document.querySelector('p').textContent = document.querySelector('button').textContent;
});

クラスの追加、削除、切り替え

document.querySelector('button').addEventListener('click', () => {
    // クラスの追加
    document.querySelector('p').classList.add('textBold', 'border-24');
    // クラスの削除
    document.querySelector('p').classList.remove('background-yellow');
    // クラスの切り替え
    document.querySelector('p').classList.toggle('current-yellow');
    // クラスの切り替えは、下記と同様
    if (document.querySelector('p').classList.contains('current-yellow') === false) { // contains で、true, falseを返すことができる
        document.querySelector('p').classList.add('current-yellow');
    } else {
        document.querySelector('p').classList.remove('current-yellow');
    }
});

複数の要素を扱うquerySelectorAll

  • querySelector で指定した要素が複数ある場合は、最初の要素だけに適用される
  • すべての同じ要素を取得するには、querySelectorAll
  • 配列のようなデータ構造になり、[n]で指定できる
  • 同じ変更ならforEachが使える
document.querySelector('button').addEventListener('click', () => {
    // document.querySelectorAll('p')[0].textContent = '1つ目のpを変更';
    // document.querySelectorAll('p')[1].textContent = '2つ目のpを変更';
    // document.querySelectorAll('p')[2].textContent = '3つ目のpを変更';
    document.querySelectorAll('p').forEach((p) => {
        p.textContent = '文字を一括変更!';
    });
});

querySelector、querySelectorAllは、要素だけでなくクラスやIDも選択できる

// クラスを取得
document.querySelector('button').addEventListener('click', () => {
    document.querySelectorAll('.target').forEach((p) => {
        p.textContent = '文字を一括変更!';
    });
});

// IDを取得
document.querySelector('button').addEventListener('click', () => {
    document.querySelector('#target').forEach((p) => {
        p.textContent = '文字を変更!';
    });
});

Discussion