Pregunta

Quiero agregar el evento click a todos los elementos donde el `id = " violacao " ;:

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

Pero solo el primer enlace responde al clic. Este es el HTML generado:

<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>

Cuando intento de esta manera:

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

Funciona bien, excepto que todos los enlaces están afectados. ¿Qué pasa?

¿Fue útil?

Solución

Las ID de

en HTML están destinadas a ser únicas (una por documento). Cambie la ID a una clase (y use. En lugar de #) y debería funcionar.

Otros consejos

Si bien lo que dice Steve Mason es cierto, el problema real no es eso.

Si cambia la identificación a una clase, el problema persiste: todos los enlaces se verán afectados.

En cambio, si pretendes afectar a un solo < A > ;, debes hacer uno de los siguientes:

a) Asigne ID únicos a cada < A > ;, luego haga algo como lo que estaba haciendo primero; o

b) Asignar clases y usar el: primer selector:

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

Eso se aplicará al primer ancla coincidente con la clase violacao. Alternativamente, si desea afectar un ancla específica, puede usar: eq (index).

Para obtener una lista completa de selectores, visite http://docs.jquery.com/Selectors .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top