Verwenden derselben ID für mehrere HTML-Tags? [Duplikat]

8

Unten ist der Beispielcode, den ich getestet habe und ich bin verwirrt. Jeder sagt, dass wir verwenden können, oder wir sollten nur einmal pro ID verwenden, aber ich habe Hoden, die es mehrmals verwenden, aber es gibt mir die richtige Ausgabe.

Was soll ich tun?

Es funktioniert irgendwie wie Klasse für mich in diesem Beispiel

code:

%Vor%

Bitte sehen Sie sich den obigen Code an und antworten Sie mir, warum wir den ID-Selektor nicht zweimal auf einer Seite verwenden sollten, solange er funktioniert.

    
gaurav rathor 18.06.2012, 09:06
quelle

5 Antworten

16

Eine ID muss auf einer Seite eindeutig sein. Verwenden Sie eine Klasse, wenn Sie eine Gruppe von Elementen beschreiben möchten.

  

Warum sollten wir den ID-Selektor nicht zweimal auf einer Seite verwenden, solange er funktioniert?

Sie machen einen Fehler und abhängig von jedem Browser, der die Seite jemals anzeigen wird, um sie zu kompensieren. Sie können nicht sicher sein, dass sie alle werden.

    
Quentin 18.06.2012 09:08
quelle
5

Ich denke, der leichtere Weg zu verstehen ist eine Analogie mit einem Produkt. Stellen Sie sich vor, ein ID funktioniert wie eine Seriennummer, dh es muss eindeutig sein. Auf diese Weise können Sie ein Produkt identifizieren, das Millionen von Kopien enthält.

Stellen Sie sich dann class als Produktcode vor, z. B. den Barcode. In einem Supermarkt haben alle gleichartigen Produkte den gleichen Barcode, der vom optischen Leser gelesen werden kann.

Also ist ein ID ein eindeutiger Identifikator und ein class gruppiert eine Gruppe von Elementen.

Aber wenn ich das gleiche ID in meinem HTML / CSS verwende, bekomme ich ein perfektes Ergebnis, warum sollte ich mir Sorgen machen über das einzigartige ID s?

Grund Nummer 1:

Wenn Sie in Zukunft Javascript verwenden müssen und ein bestimmtes Element manipuliert werden muss und es eine duplizierte ID hat, wird Ihr Code nicht das erwartete Ergebnis erzeugen.

Grund Nummer 2

Ihr Code wird nicht von W3C validiert, was bedeutet, dass Sie Probleme mit der Kompatibilität Ihrer Website mit Browsern haben können. Es kann in einem Browser gut funktionieren und in anderen nicht.

Stellen Sie sich anhand eines realen Beispiels vor, dass Sie den Text dieses Elements dynamisch mit Javascript aktualisieren möchten:

%Vor%

Mit Javascript / JQuery verwenden Sie einen Code wie folgt:

%Vor%

Und dann wird der Text des Elements <blockquote id="exampleID1"> aktualisiert, aber das untere Element wird auch aktualisiert, weil es das gleiche ID hat.

%Vor%

Wenn Sie also nur ein Element aktualisieren möchten, müssen sie ein eindeutiges ID s haben.

Ich hoffe, Sie können diese Erklärung verwenden, um den Unterschied zwischen ID und class besser zu verstehen.

    
Marcio Mazzucato 18.06.2012 12:27
quelle
2

Es funktioniert, aber das ist nicht die Art, wie IDs verwendet werden sollen (gemäß den HTML-Spezifikationen). Eine ID muss sich nur auf ein Objekt beziehen. Die Beschreibung mehrerer Objekte muss mit der Klasse und nicht mit der ID erfolgen.

    
maxdec 18.06.2012 09:10
quelle
0

Sie sollten eindeutige IDs verwenden, um sicherzustellen, dass der HTML-Code gültig ist.

Der Grund dafür ist einfach, dass IDs dazu verwendet werden, einzigartige Elemente zu identifizieren.

Die Seite wird zwar weiterhin gerendert, obwohl sie ungültig ist, aber das größte praktische Problem besteht darin, dass JavaScript und andere Bibliotheken so optimiert sind, dass IDs eindeutig sind, wenn Sie alle Elemente mit einer ID abrufen und ausblenden möchten sie z mit jQuery

%Vor%

Nur das erste Element wird ausgeblendet, da die Auswahl durch die ID nur ein einzelnes Element zurückgeben soll. Sobald ein einzelnes Element gefunden wurde, wird die Abfrage kurzgeschlossen, um das einzelne Element zurückzugeben. Ohne dies zu wissen, können Sie scheinbar seltsames Verhalten und schwer zu diagnostizierende Defekte bekommen.

    
StuperUser 18.06.2012 09:11
quelle
0
  

Warum sollten wir den ID-Selektor nicht zweimal während einer Seite verwenden?   funktioniert gut

Weil Sie nicht wissen, ob es in jedem Browser funktioniert.

Die Spezifikationen besagen, dass eine ID auf der Seite eindeutig sein muss. Wenn also Browser Ihre doppelten IDs finden, versuchen sie, sie so gut wie möglich zu handhaben. Die meisten Browser scheinen damit umzugehen, indem sie die Identität nur für das erste Element verwenden, aber das Attribut id auf den Elementen belassen, so dass Ihr CSS immer noch funktioniert, aber es gibt keine Garantie, dass alle Browser es so handhaben .

Verschiedene Browser-Anbieter verwenden unterschiedliche Taktiken für die Handhabung von falschem Markup, und jeder Anbieter findet einen "neuen, besseren" Weg, so dass falsches Markup in der Regel auf so viele verschiedene Arten wie möglich gehandhabt wird.

    
Guffa 18.06.2012 10:11
quelle

Tags und Links