2

ここでjQueryの初心者。

このhtmlがある場合:

<ul id="floor-selector">
    <li id="floor-1">Ground Floor</li>
    <li id="floor-2">Second Floor</li>
    <li id="floor-3">Third Floor</li>
    <li id="floor-4">Premier Floor (Premier Floor)</li>
</ul>

私がいる要素の を取得できるように、click各アイテムにイベントを追加したいと思います。現在、私が使用しているインデックスのアラートが表示されていますが (どちらも機能していません)、セレクターによって返された配列のインデックスではなく、使用中のアイテムの ID が本当に必要です。liid

each()これが私が試したものですが、うまくいかないようです. orの理解が間違っているのではないかと思いますclick().

$('#floor-selector li').each( function(index, node) {
    node.click( function(){ alert('I am on the '+index+'th element'); } );
    // but I really want to get the ID of this element
  });
4

1 に答える 1

7

これはうまくいくはずです:

$('#floor-selector li').on('click', function() {
    alert('I am the '+$(this).attr('id')+' element');
});

舞台裏で jQuery は一連の魔法を実行し、本質的に要素に渡す関数をバインドします。thisしたがって、クリックしている要素を参照し、それを jQuery 関数に渡します。jQuery$(this)オブジェクトにラップされた要素を返します。もちろん、idon にthis直接アクセスすることもできます。

于 2013-08-24T18:47:16.843 に答える