Ist es immer schlecht, eine ID mit einer Nummer zu beginnen? (CSS)

8

In meinem Projekt habe ich Einreichungen und Kommentare mit jeweils einer ID. Derzeit sind die IDs nur numerisch und entsprechen ihren Datenbank-IDs. Alles funktioniert gut, aber wenn ich es durch den W3-Validator laufe, bekomme ich den Fehler:

value of attribute "id" invalid: "1" cannot start a name

Ich nehme an, dass ich stattdessen allen ids eine Art String voranstellen könnte, aber immer dann, wenn ich die ID in JQuery oder PHP verwende oder manipuliere, muss ich eine id.replace ('string', '') machen es. Dies scheint ziemlich umständlich. Irgendwelche Tipps?

    
John Smith 20.03.2011, 04:02
quelle

5 Antworten

16

Ja, die Verwendung von Zahlen als HTML-Element-IDs ist eine schlechte Übung.

  1. Es verletzt die W3C-Spezifikation.
    Sie haben dies in Ihrer Frage notiert und das gilt für jede HTML-Spezifikation außer HTML5

  2. Es ist schädlich für SEO.
    Suchmaschinenoptimierte HTML-Element-IDS SOLLTEN den Inhalt des identifizierten Elements wiedergeben. Sehen Sie sich Wie HTML-ID zu erstellen und Klassennamen wie ein Rockstar von Meitar Moscovitz. Es bietet einen guten Überblick über dieses Konzept.

  3. Es kann serverseitige Skriptingprobleme geben.
    Zurück als ich anfing, mit ASP classic zu programmieren, musste ich auf übermittelte Formularfelder mit einer Syntax wie Request.Form("some_id") zugreifen. Wenn ich jedoch Request.Form(1) hätte, würde es den Wert des zweiten Feldes in der Formularsammlung zurückgeben, anstelle des Elements mit einer Id gleich 1. Dies ist ein ziemlich normales Verhalten für das Arbeiten mit Sammlungen. Es ist auch ähnlich mit Javascript, und könnte Ihre clientseitige Skripterstellung auch komplizierter machen.

smartcaveman 20.03.2011, 04:16
quelle
6

Ich empfehle Ihnen, Präfixe "Kommentar-ID" oder "Post-ID" zu verwenden.

Wenn Sie die ID in JavaScript benötigen, müssen Sie nur id.substring(8) (für "Kommentar -")

    
Thomas Menga 20.03.2011 04:05
quelle
4

Die HTML 5-Spezifikation hebt diese Einschränkung auf. Wenn Sie sich Sorgen um die Gültigkeit machen, sollten Sie einfach die DTD in HTML5 ändern.

Ссылка

    
Chris Bentley 20.03.2011 04:15
quelle
2

Wenn Sie das Element manipulieren, können Sie einfach $(this).jQueryOperation() verwenden - Sie können also ein Präfix haben, ohne etwas ersetzen zu müssen!

    
Prisoner 20.03.2011 04:06
quelle
0

Der beste Weg für Ihre Bedürfnisse ist das Präfix für Ihre Klasse. Ich meine etwas wie item- x und x ist die Anzahl, die Sie brauchen.

Aber aus meiner persönlichen Erfahrung heraus ist es besser, Klassen für Ihre Elemente zu verwenden, und Sie wissen, dass Sie Klassen verwenden müssen, wenn das Element auf der Seite nicht eindeutig ist

    
M98 24.12.2016 13:53
quelle

Tags und Links