0

jQuery :

$("#direction").click(function() {
    var direction = $(this).text();
    alert(direction);
}

HTML

<button id="direction">South</button>
<button id="direction">North</button>

最初のボタンのみがテキストを警告します。理由がわかりません。どうすればこれを修正できますか?

4

3 に答える 3

7

同じ ID を持つ 2 つの要素を持つことはできません。できることは、それらに同じクラスを与えてから、それにイベント ハンドラーを追加することです。

例:

<button class="directionBtn">South</button>
<button class="directionBtn">North</button>

$(".directionBtn").click(function() {
                var direction = $(this).text();
                alert(direction);
});
于 2012-06-12T18:55:38.080 に答える
2

同じ要素を複数持つことは無効ですid(ドキュメント内で一意であるid 必要があります)。jQuery はおそらくdocument.getElementById()内部的に実装されているため、これは、最初に遭遇した要素のみを (正しく) 返しidます。

あなたの場合class、方向を使用し、それに基づいて選択する必要があります。

$('.direction').click(
    function(){/*...*/});
于 2012-06-12T18:56:48.977 に答える
1

同じ id を持つ 2 つの要素を持つことはできません。一度に複数の要素を参照する場合は、次のようなクラスを使用します。

<button class="direction">South</button>
<button class="direction">North</button>

そして、あなたのスクリプトで:

 $(".direction").click(function() {
    var direction = $(this).text();
    alert(direction);
});
于 2012-06-12T18:58:00.487 に答える