ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery の ID セレクターが同じ ID を持つ複数の要素で機能しないのはなぜですか?

jQuery の ID セレクターが同じ ID を持つ複数の要素で機能しないのはなぜですか?

Patricia Arquette
リリース: 2024-12-25 16:40:17
オリジナル
780 人が閲覧しました

Why Doesn't jQuery's ID Selector Work with Multiple Elements Having the Same ID?

jQuery ID セレクターが複数の要素で機能しない

複数の要素に同じ ID を使用しているにもかかわらず、jQuery の ID セレクターは最初の要素のみを認識します。そのID。これにより、クリック イベント時に複数の同じ ID 要素の値を取得しようとするときに問題が発生します。ここで問題が発生します:

<button>
ログイン後にコピー
$("#xyz").click(function() {
  var xyz = $(this).val();
  alert(xyz);
});
ログイン後にコピー

ただし、この jQuery スクリプトは最初のボタン (「XYZ1」) の値のみをキャプチャします。他のボタンをクリックしても応答はありません。

この動作の理由は、HTML ID 属性の性質にあります。 HTML 仕様によれば、ID 値はドキュメント内で一意である必要があります。複数の要素に同じ ID を割り当てるとこのルールに違反し、ブラウザは ID によるクエリ時に最初に一致した要素のみを返します。

解決策: Class

To による一意の識別子この問題に対処するには、ID 属性をクラス属性に置き換えます:

<button type="button" class="btn btn-primary xyz" value="1">XYZ1</button>
<button type="button" class="btn btn-primary xyz" value="2">XYZ2</button>
<button type="button" class="btn btn-primary xyz" value="3">XYZ3</button>
ログイン後にコピー

ここで、クラス セレクターを使用します。 jQuery:

$(".xyz").click(function() {
  alert(this.value);
});
ログイン後にコピー

このコードは、クリック時に 3 つのボタンすべての値を正常に取得します。信頼性の低い ID セレクターに依存する代わりに、クラス属性は複数の同様の要素に一意の識別子を提供し、特定の情報の取得を可能にします。

以上がjQuery の ID セレクターが同じ ID を持つ複数の要素で機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート