Die jQuery-Klickfunktion funktioniert nur beim ersten Element

8

Ich habe Probleme mit jQuery.

Ich mache ein einfaches CMS und in der Benutzeroberfläche habe ich eine Liste von Seiten, in jedem Listenelement ist ein Bearbeitungslink. Ich habe jQuery auf Klicks mit dieser Bearbeitungs-ID aufmerksam gemacht. Es wird dann den übergeordneten LI betrachten, um zu sehen, welche ID er hat, damit der Benutzer die Änderungen in der richtigen pageId in der Datenbank speichern kann.

Meine Liste

%Vor%

Und das Javascript

%Vor%

Aber nur der erste Bearbeitungslink funktioniert. Alle anderen werden einfach ignoriert. Sie können das Problem hier sehen, Ссылка

Vielen Dank im Voraus.

    
Macint 30.07.2009, 14:18
quelle

7 Antworten

23

In% verweist id auf eine eindeutige ID . Mit anderen Worten, es ist gegen Standards, 2 Elemente mit demselben id zu haben. jQuery verhält sich hier korrekt.

Verwenden Sie class anstelle von id , um Ihre Tags als solche zu identifizieren:

HTML:

%Vor%

JavaScript:

%Vor%

Da das übergeordnete Tag bereits eine eindeutige Klasse zu haben scheint, könnten Sie es einfach dazu verwenden, um gewünschte Tags zu targetieren. Dies würde das reduzieren, was ich "Klassenrauschen" nenne (das Definieren einer nutzlosen Klasse für ein Zielelement, auf die die einzigartigen Attribute ihrer Eltern abzielen könnten).

HTML:

%Vor%

JavaScript:

%Vor%     
Andrew Moore 30.07.2009, 14:23
quelle
6

Ich denke, das liegt daran, dass für jedes Element dieselbe ID verwendet wird. Versuchen Sie stattdessen, eine Klasse zu verwenden.

%Vor%

Und dann

%Vor%     
lazy1 30.07.2009 14:22
quelle
4

Sie können nicht zwei Elemente mit derselben ID haben. Das ist ungültiger HTML-Code. Vielleicht möchten Sie stattdessen eine Klasse?

Versuchen Sie:

%Vor%     
Craig Stuntz 30.07.2009 14:21
quelle
3

IDs müssen eindeutig sein, während Klassennamen identisch sein können.

    
Dirk 30.07.2009 14:21
quelle
1

Ich habe Ihren Link ausprobiert und es sieht so aus, als ob alle Alarme verkabelt sind und richtig funktionieren, nur nicht in der Reihenfolge (2 ist 5, etc)

    
Chris Ballance 30.07.2009 14:22
quelle
1

Wenn Sie Ihren HTML-Code nicht ändern möchten (aber Sie sollten), können Sie Folgendes versuchen:

%Vor%     
eKek0 30.07.2009 14:25
quelle
0

Ich habe keine Ahnung, was alle anderen gesagt haben, aber ich habe gerade ein

geändert %Vor%

von der Fantasie-Box ... zu diesem Skript am Ende meiner HTML / PHP-Seite ... und das Tag zu

%Vor%     
user3315100 18.02.2014 18:34
quelle

Tags und Links