Question

Je souhaite ajouter l'événement click à tous les éléments pour lesquels le `id = " violacao ":

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

Mais seul le premier lien répond au clic. Voici le code HTML généré:

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

Quand j'essaie de cette façon:

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

Cela fonctionne bien, sauf que tous les liens sont affectés. Quel est le problème?

Était-ce utile?

La solution

Les identifiants HTML sont censés être uniques (un par document). Modifiez l'ID en une classe (et utilisez. Au lieu de #) et cela devrait fonctionner.

Autres conseils

Bien que Steve Mason dise que c'est vrai, le problème n'est pas celui-là.

Si vous modifiez l'ID d'une classe, le problème persiste: tous les liens seront affectés.

Au lieu de cela, si vous souhaitez affecter un seul < A > ;, vous devez effectuer l'une des opérations suivantes:

a) Attribuez des identifiants uniques à chaque < A > ;, puis faites quelque chose comme vous le faisiez en premier; ou

b) Assignez des classes et utilisez le sélecteur: first:

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

Cela s’appliquera à la première ancre correspondante avec la classe violacao. Si vous souhaitez affecter une ancre spécifique, vous pouvez également utiliser: eq (index).

Pour obtenir une liste complète des sélecteurs, visitez le site http://docs.jquery.com/Selectors . .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top