Ich verwende jQuery und frage mich nur, ob die ID auf der gesamten Seite immer eindeutig sein muss. Ich weiß, der Unterricht kann so oft wiederholt werden, wie Sie möchten. Was ist mit dem Ausweis?
Ich verwende jQuery und frage mich nur, ob die ID auf der gesamten Seite immer eindeutig sein muss. Ich weiß, der Unterricht kann so oft wiederholt werden, wie Sie möchten. Was ist mit dem Ausweis?
Antworten:
Ja, es muss einzigartig sein.
HTML4:
https://www.w3.org/TR/html4/struct/global.html#h-7.5.2
Abschnitt 7.5.2:
id = name [CS] Dieses Attribut weist einem Element einen Namen zu. Dieser Name muss in einem Dokument eindeutig sein.
HTML5:
https://www.w3.org/TR/html5/dom.html#element-attrdef-global-id
Das id-Attribut gibt die eindeutige ID (ID) des Elements an. Der Wert muss unter allen IDs im Home-Teilbaum des Elements eindeutig sein und mindestens ein Zeichen enthalten. Der Wert darf keine Leerzeichen enthalten.
von mdn
https://developer.mozilla.org/en/DOM/element.id
also denke ich es ist besser ...
Muss eine ID auf der gesamten Seite eindeutig sein ?
Denn im HTML-Lebensstandard vom 6. Dezember 2019 heißt es eindeutig:
Das
class,idundslotAttribute können auf alle HTML - Elemente angegeben werden. ……. Wenn auf HTML - Elementen angegeben, dasidmuss Attributwert sein unter allen IDs einzigartig in der Element - Baum und mindestens ein Zeichen enthalten muss.
und eine Seite kann mehrere haben DOM-Bäume haben . Dies ist beispielsweise der Fall, wenn Sieeinem ElementElement.attachShadow()einen Schatten-DOM-Baum hinzugefügt () haben.

Muss eine ID auf der gesamten Seite eindeutig sein ?
Nein.
Muss eine ID in einem DOM-Baum eindeutig sein ?
Ja.
Technisch gesehen muss die ID nach HTML5-Standards auf der Seite eindeutig sein - https://developer.mozilla.org/en/DOM/element.id
Aber ich habe an extrem modularen Websites gearbeitet, bei denen dies völlig ignoriert wird und funktioniert. Und es macht Sinn - der überraschendste Teil.
Wir nennen es "Komponentisierung"
Beispielsweise könnte Ihre Seite eine Komponente enthalten, bei der es sich um eine Art Widget handelt. Es enthält Inhalte mit eigenen eindeutigen IDs, z. B. "OK-Button".
Sobald sich viele dieser Widgets auf der Seite befinden, haben Sie technisch ungültiges HTML. Aber es macht Sinn componentize Ihre Widgets , so dass sie jeweils intern ihre eigenen OK - Taste , zB Referenz , wenn Jquery verwenden suchen von ihm eigene Wurzel ist es sein könnte:$widgetRoot.find("#ok-button")
Dies funktioniert für uns, obwohl technisch gesehen IDs überhaupt nicht verwendet werden sollten, sobald sie nicht eindeutig sind.
Wie oben erwähnt, macht es sogar YouTube, also ist es nicht so abtrünnig.
Früher waren Browser diesbezüglich nachsichtig (vor vielen Jahren, als CSS noch jung war) und erlaubten, dass die ID mehr als einmal verwendet wurde. Sie sind strenger geworden.
Ja-IDs dürfen jedoch eindeutig sein und nur einmal verwendet werden.
Wenn Sie die CSS-Formatierung mehrmals verwenden müssen, verwenden Sie CLASS.
Das ist im Grunde der springende Punkt eines Ausweises. :) IDs sind spezifisch und können nur einmal pro Seite verwendet werden. Klassen können nach Belieben genutzt werden.
IDs müssen immer eindeutig sein.
Jeder hat eine eindeutige Identifikationsnummer (z. B. Sozialversicherungsnummer), und es gibt viele Personen in einer sozialen Klasse
Ja, IDs sind eindeutig. Klasse sind nicht.
Es gibt gute Antworten auf dieselbe Frage unter /software/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really .
Ein Leckerbissen, das oben nicht erwähnt wurde, ist, dass, wenn es mehrere identische ids gibt, dieselbe Seite (was passiert, obwohl es gegen den Standard verstößt):
Wenn Sie dies umgehen müssen (das ist traurig), können Sie
$("*#foo")jQuery davon überzeugen,getElementsByTagNameeine Liste aller übereinstimmenden Elemente zu verwenden und zurückzugeben.