Onde está o problema errado?
-
08-07-2019 - |
Pergunta
Eu quero adicionar o evento click para todos os elementos, onde o " id="violacao":
$(document).ready(function () {
jQuery('#violacao').click(function() {
alert('teste');
});
});
Mas apenas o primeiro link responde ao clique.Este é o HTML gerado:
<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>
Quando eu tente desta forma:
jQuery("a").click(function() {
alert('teste');
});
Ele funciona muito bem, exceto que todos os links são afetados.O que há de errado?
Solução
IDs em HTML são destinadas a ser único (um por documento). Mudar o ID para uma classe (e uso. Em vez de #) e ele deve funcionar.
Outras dicas
Enquanto que o Steve Mason diz que é verdade, o problema real não é isso.
Se você alterar a IDENTIFICAÇÃO de uma classe de um problema persiste:todos os links vão ficar afectado.
Em vez disso, se você apontar para afetar um único <A>, você deve fazer o seguinte:
a) Atribuir IDs únicos para cada um <A>, em seguida, fazer algo como o que você estava fazendo em primeiro lugar;ou
b) Atribuir classes e usar o :primeiro seletor:
jQuery("a.violacao:first").click( function (){
alert('teste');
} );
Que serão aplicadas a primeira correspondência de âncora com a classe de violacao.Como alternativa, se você deseja afetar um determinado âncora, você poderia usar :eq(índice).
Para uma lista completa dos seletor, visite http://docs.jquery.com/Selectors.