ホームページ >ウェブフロントエンド >jsチュートリアル >同じクラスの複数の要素にクリック イベント リスナーを追加するにはどうすればよいですか?

同じクラスの複数の要素にクリック イベント リスナーを追加するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 16:30:02679ブラウズ

How to Add Click Event Listeners to Multiple Elements with the Same Class?

同じクラスの要素にクリック イベント リスナーを追加する

このシナリオでは、ID を削除するためのリスト ビューがあり、ID を追加する必要があります。クラス「delete」を持つすべての要素に対する確認アラート。ただし、クラスの最初の要素のみがリスナーを受け取るという問題が発生しました。

解決策

これを解決するには、querySelectorAll を使用する必要があります。 querySelector の代わりに。 querySelectorAll は、指定されたクラスを持つすべての要素を含む NodeList を返します:

var deleteLink = document.querySelectorAll('.delete');

これで、NodeList を反復処理し、各要素にイベント リスナーを追加できます:

for (var i = 0; i < deleteLink.length; i++) {
    deleteLink[i].addEventListener('click', function(event) {
        if (!confirm("sure u want to delete " + this.title)) {
            event.preventDefault();
        }
    });
}

さらに、イベント リスナーを追加することのみが可能です。ユーザーが削除を確認しない場合のデフォルトのアクション。これにより、ユーザーが明示的に続行を選択した場合にのみ削除が実行されるようになります。

ES6 の機能強化

ES6 を使用すると、Array.prototype.forEach を使用してループを簡素化できます。 :

Array.from(deleteLinks).forEach(link => {
    link.addEventListener('click', event => {
        if (!confirm(`sure u want to delete ${this.title}`)) {
            event.preventDefault();
        }
    });
});

このバージョンはテンプレート文字列を利用します(ES2015 で導入) よりクリーンな構文です。

以上が同じクラスの複数の要素にクリック イベント リスナーを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。