ホームページ > ウェブフロントエンド > jsチュートリアル > 複数の要素が同じ ID を共有している場合、jQuery の ID セレクターが最初の要素でのみ機能するのはなぜですか?

複数の要素が同じ ID を共有している場合、jQuery の ID セレクターが最初の要素でのみ機能するのはなぜですか?

Barbara Streisand
リリース: 2024-12-17 10:53:24
オリジナル
938 人が閲覧しました

Why Does jQuery's ID Selector Only Work with the First Element When Multiple Elements Share the Same ID?

複数の同一 ID による jQuery ID セレクターの動作

jQuery を使用する場合、ID セレクター ($(" #xyz")) は、最初に一致した要素から値のみを取得するようです。この動作は、特に同じ ID を持つすべての要素に対して機能すると期待している場合に、混乱しイライラする可能性があります。

同じ ID を持つ HTML コード

次の点を考慮してください。 3 つの ID に同じ ID (「xyz」) を誤って割り当てている HTML コードボタン:

<button>
ログイン後にコピー

jQuery コード

クリックされたボタンの値を取得するには、次の jQuery コードを試してみてください:

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

最初のボタンのみで機能する理由

この内容この場合、jQuery コードは最初のボタンに対してのみ機能します。 jQuery ID セレクターは、指定された ID に一致する最初の要素を選択するように設計されています。 ID "xyz" は複数回繰り返されるため、最初の ID のみが返されます。

HTML の無効性と解決策

この動作は、有効な HTML を保証することの重要性を強調しています。コード。 HTML 仕様によれば、各 ID 値はドキュメント内で一意である必要があります。同じ ID を持つ複数の要素を持つことは無効であり、避ける必要があります。

問題を修正するには、各ボタンの 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コード

更新された HTML コードを使用してクリックされたボタンの値を取得するには、クラスを使用しますselector:

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

注: この改訂されたコードでは、「this」キーワードを $() で囲む必要はありません。これはすでにネイティブ JavaScript オブジェクトであるためです。

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

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