Frage

Ich möchte das Click-Ereignis zu allen Elementen hinzufügen, bei denen „id="violacao" gilt:

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

Aber nur der erste Link reagiert auf den Klick.Dies ist der generierte HTML-Code:

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

Wenn ich es so versuche:

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

Es funktioniert einwandfrei, außer dass alle Links betroffen sind.Was ist falsch?

War es hilfreich?

Lösung

IDs in HTML sollen eindeutig sein (eine pro Dokument). Ändern Sie die ID zu einer Klasse (und verwenden. Statt #) und es sollte funktionieren.

Andere Tipps

Auch wenn das, was Steve Mason sagt, wahr ist, liegt das eigentliche Problem nicht darin.

Wenn Sie die ID in eine Klasse ändern, besteht weiterhin ein Problem:Alle Links werden betroffen sein.

Wenn Sie stattdessen ein einzelnes <A> beeinflussen möchten, sollten Sie einen der folgenden Schritte ausführen:

a) Weisen Sie jedem <A> eindeutige IDs zu und gehen Sie dann so vor, wie Sie es zuerst getan haben.oder

b) Weisen Sie Klassen zu und verwenden Sie den :first-Selektor:

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

Dies gilt für den ersten passenden Anker mit der Klasse violacao.Wenn Sie alternativ einen bestimmten Anker beeinflussen möchten, können Sie :eq(index) verwenden.

Eine umfassende Liste der Selektoren finden Sie unter http://docs.jquery.com/Selectors.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top