Domanda

Voglio aggiungere l'evento click a tutti gli elementi in cui `id = " violacao " ;:

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

Ma solo il primo link risponde al clic. Questo è il codice HTML generato:

<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 provo in questo modo:

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

Funziona bene, tranne per il fatto che tutti i collegamenti sono interessati. Cosa c'è che non va?

È stato utile?

Soluzione

Gli ID in HTML devono essere univoci (uno per documento). Cambia l'ID in una classe (e usa. Invece di #) e dovrebbe funzionare.

Altri suggerimenti

Mentre ciò che Steve Mason dice è vero, il vero problema non è quello.

Se cambi ID in una classe, il problema persiste: tutti i collegamenti saranno interessati.

Invece, se miri a influenzare un singolo < A > ;, dovresti effettuare una delle seguenti operazioni:

a) Assegna ID univoci a ciascun < A > ;, quindi fai qualcosa come quello che stavi facendo per primo; o

b) Assegna le classi e usa il: primo selettore:

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

Ciò si applicherà alla prima ancora di corrispondenza con il violacao di classe. In alternativa, se si desidera influire su un ancoraggio specifico, è possibile utilizzare: eq (indice).

Per un elenco completo dei selettori, visitare http://docs.jquery.com/Selectors .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top