JavaScriptでIDやCLASSを取得する方法

この記事は約 6 分で読めます。

みなさんこんばんは!

ヒロポンです!

今回はJavaScriptでIDやCLASSの要素を取得する方法について書いていこうと思います!

JavaScriptでIDを取得するには、getElementByIdを使う

まずはJavaScriptでID要素を取得する方法ですが、これは割とシンプルです

getElementById

を使いましょう。

具体的にHTMLに以下のようなコードがあった場合、

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="myId">こんにちは</div>
</body>
</html>

getElementByIdを使って要素を取得するには、以下のようにします。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="myId">こんにちは</div>
<script>
    let target = document.getElementById('myId')
</script>
</body>
</html>

上の例では、myIdというId要素を取得し、targetという変数に入れています。

ではこの取得した要素targetに処理をしたい場合。

今回の場合divのbackgroundを黒にして、高さと横幅を360pxにしてみましょう。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="myId">こんにちは</div>
<script>
    let target = document.getElementById('myId')
    target.style.height = '360px';
    target.style.width = '360px';
    target.style.background = 'black';
</script>
</body>
</html>

このコードを実行すると、背景が黒の高さ360px横幅360pxのdiv要素ができるはずです。

JavaScriptでId要素を取得するのは、以上のように簡単なのですが、Class要素を取得する場合少しむずかしくなります。

JavaScriptでClassを取得するには、getElementsByClassNameを使う

では続いてJavaScriptでClass要素を取得する方法について書いていきます。

前提知っておいてほしいのは、HTMLファイルにIDは1つしか存在できませんが、CLASSは複数存在できるいうことです。

それにより、ID要素を取得した場合は、targetという変数をそのまま使えましたが、CLASSはちょっとやり方が変わります。

では以下のようなHTMLファイルのMyclassというclass要素を取得してみましょう。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="myclass" >おはようございます。</div>
<div class="myclass">こんにちは</div>
<div class="myclass">こんにちは</div>
</body>
</html>

使い方は基本的にgetElementByIdと同じです。

以下のような書き方でClass要素は取得できます。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="myclass" >おはようございます。</div>
<div class="myclass">こんにちは</div>
<div class="myclass">こんにちは</div>
<script>
    let targets = document.getElementsByClassName('myclass')
</script>
</body>
</html>

ただ注意してほしいのは、Class要素というのは同じHTMLファイルの中でも複数存在できます。

ということは上記の場合3つのクラス要素がtargetsの中に入っているということになりますね。

ではこのクラス要素に順に処理をする場合はどうするのか?

以下のようにします。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="myclass" >おはようございます。</div>
<div class="myclass">こんにちは</div>
<div class="myclass">こんにちは</div>
<script>
    var targets = document.getElementsByClassName('myclass')
    for(let i = 0;i < targets.length;i++){
        var target = targets[i]
        target.style.background = 'blue';
        target.style.height = '300px';
        target.style.width = '300px';
    }
</script>
</body>
</html>

さきほど書いたとおり、getElementByClassNameは複数の要素を取得してきます。

なのでtargetsという変数は配列形式で作られています。

ではこの要素に順に処理をしていくには、どうするのか?

targetsの要素をfor文を使って、順に取り出しましょう。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="myclass" >おはようございます。</div>
<div class="myclass">こんにちは</div>
<div class="myclass">こんにちは</div>
<script>
        let targets = document.getElementsByClassName('myclass');

        for(let i = 0; i < targets.length; i++){
            let target = targets[i]
            target.style.width = '300px';
            target.style.height = '300px';
            target.style.background = 'blue';
        }
</script>
</body>
</html>

これでtargetの中に入っている配列の要素に対し、順に処理ができたかと思います。

今回は以上!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA