1

`id="violacao" のすべての要素にクリック イベントを追加したい:

$(document).ready(function () {
    jQuery('#violacao').click(function() {
        alert('teste');
    });
});

ただし、最初のリンクだけがクリックに応答します。生成された HTML は次のとおりです。

<tr>
  <td><a href="#" id="violacao">40954589</a></td>
  <td>Perda de Comunicação</td>
</tr>

<tr>
  <td><a href="#" id="violacao">88692020503</a></td>
  <td>Perda de Comunicação</td>
</tr>

この方法を試すと:

jQuery("a").click(function() {
    alert('teste');
});

すべてのリンクが影響を受けることを除いて、問題なく動作します。なにが問題ですか?

4

2 に答える 2

19

HTML の ID は一意であることを意図しています (ドキュメントごとに 1 つ)。ID をクラスに変更し (# の代わりに . を使用)、動作するはずです。

于 2009-03-10T21:06:02.937 に答える
1

Steve Mason の言うことは本当ですが、実際の問題はそうではありません。

ID をクラスに変更すると、問題が解決しません: すべてのリンクが影響を受けます。

代わりに、単一の <A> に影響を与えることを目的とする場合は、次のいずれかを実行する必要があります。

a) 各 <A> に一意の ID を割り当ててから、最初に行っていたのと同じことを行います。また

b) クラスを割り当て、:first セレクターを使用します。

jQuery("a.violacao:first").click( function (){
  alert('teste');
} );

これは、violacao クラスの最初に一致するアンカーに適用されます。または、特定のアンカーに影響を与えたい場合は、:eq(index) を使用できます。

For a comprehensive list of selector, visit http://docs.jquery.com/Selectors.

于 2009-03-11T10:56:31.240 に答える