このJQueryはどこが間違っていますか?
-
08-07-2019 - |
質問
「id = <!> quot; violacao <!> quot;:
のすべての要素にクリックイベントを追加したい$(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');
});
すべてのリンクが影響を受けることを除いて、正常に動作します。何が問題なのですか?
解決
HTMLのIDは一意(ドキュメントごとに1つ)である必要があります。 IDをクラスに変更し(#の代わりに。を使用します)、動作するはずです。
他のヒント
スティーブメイソンの言うとおりですが、実際の問題はそれではありません。
IDをクラスに変更すると、問題が解決しません。すべてのリンクが影響を受けます。
代わりに、単一の<!> lt; A <!> gt;に影響を与えることを目指す場合は、次のいずれかを実行する必要があります。
a)各<!> lt; A <!> gt;に一意のIDを割り当ててから、最初に行っていたようなことを行います。または
b)クラスを割り当て、:firstセレクターを使用します:
jQuery("a.violacao:first").click( function (){
alert('teste');
} );
これは、クラスviolacaoと最初に一致するアンカーに適用されます。あるいは、特定のアンカーに影響を与えたい場合は、:eq(index)を使用できます。
セレクターの包括的なリストについては、 http://docs.jquery.com/Selectors にアクセスしてください。 。
所属していません StackOverflow