JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】同じ関数を使う2つ以上のリンクでonclickが機能しない原因と解決法


同じ関数を使う2つ以上のリンクでonclickが機能しない場合は、JavaScriptのdocument.querySelectorAll()を使用しましょう。以下に具体的なコード例を示します。

解決策:querySelectorAll()ですべての要素を取得する

document.getElementById()document.querySelector()は、一致する要素のうち最初の1件しか取得できません。そのため、複数のリンクや要素に同じイベントを設定しようとしても、一部しか動作しないことがあります。

document.querySelectorAll()は、指定したセレクターに一致するすべての要素をNodeListとして返します。この結果に対してforEach()でループ処理を行えば、各要素ひとつひとつにonclickなどのイベントを正しく割り当てることができます。

サンプルコード

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="class1">www.example.com</div>
<div class="class1">www.test.com</div>
<script>
    const values = document.querySelectorAll('[class=class1]');
    values.forEach(function(v) {
        v.onclick = function() {
            console.log(v.innerHTML);
        };
    });
</script>
</body>
</html>

このように、forEach()の内部で各要素(v)に対してonclickを設定すれば、同じクラスを持つ複数の要素すべてで、クリックイベントが正しく動作するようになります。

実行方法

上記のプログラムを実行するには、ファイル名を「anyName.html」(例:index.html)として保存し、そのファイルを右クリックしてください。VS Codeエディターの場合は、「Open with Live Server」を選択すると、ブラウザーですぐに動作を確認できます。

出力結果

このプログラムを実行して各要素をクリックすると、開発者ツールのコンソールに次のように表示されます。

www.example.com
www.test.com

  1. 【JavaScript入門】onclick()でボタンクリック時に関数を呼び出す方法

    はじめにWebページのボタンがクリックされたときに、特定の関数を実行したい場面は非常によくあります。JavaScriptでは、HTML要素のonclick属性に関数名を指定するだけで、この動作を簡単に実現できます。例えば、次のようなボタンがあるとします。<button onclick="displayingMessageOnButtonClick()">押してください</button>このボタンがクリックされた際に、指定した関数を呼び出すことが目的です。コード例以下がその完全なサンプルコードです。<!DOCTYPE html> <h

  2. Windows 10でFnキーが動かない?今すぐ試せる対処法6選

    Fn(ファンクション)キーは、画面の明るさ調整、スピーカーの音量コントロール、機内モードのオン/オフなど、さまざまなハードウェア機能をワンタッチで操作できる便利なキーです。わざわざアクションセンターや設定画面を開く手間がないのが最大の魅力です。 しかし、何かの拍子にFnキーが効かなくなり、設定を変更するたびにいちいちメニューを開かなければならなくなると、かなりストレスを感じるでしょう。この記事では、Windows 10でFnキーが動作しなくなったときに試したい対処法を6つ紹介します。 1. Fnロックがかかっていないか確認する Fnキーが突然使えなくなった場合、最も多い原因はFnロックが誤って