¿Dónde está mal este JQuery?
-
08-07-2019 - |
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?
Solución
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 .