id-Namen nicht standardkonform, aber warum?
Don P
- javascript
1 Cheatah
Hallo,
In meiner Tabelle, die in der ersten Spalte eine Nummerierung hat, sind alle Zeilen (tr) mit einem id-Attribut versehen, das die entsprechende Nummer enhält, also z.B. <tr id="584">. Das funktioniert super z.B. für getElementById(), jedenfalls im IE, den ich wegen ActiveX-Notwendigkeit (natürlich ohne Internetanbindung) für diesen Zweck ausschließlich verwende.
Jetzt musste ich aber feststellen, dass der Validator diese id-Werte anmeckert, und tatsächlich: Bei SELFHTML findet man dazu u.A. "Das erste Zeichen muss ein Buchstabe sein. Danach sind auch Ziffern erlaubt."
Ok, ich nehme das mal zur Kenntnis, aber warum ist das so? Kennt jemand einen halbwegs plausiblen Grund für diese Beschränkung? Es würde mir einfach helfen, das zu wissen, weil ich einen angeborenen Widerwillen habe, mich an willkürliche, offensichtlich völlig unnötige Reglementierungen zu halten.
Soll ich jetzt wirklich, nur um den Validator zufrieden zu stellen, jeweils einen Buchstaben davorsetzen und zwansläufig noch extra-Code schreiben, um der getElementById()-Methode jeweils das passende id-Format vorzukauen?
Gruß, Don P
Hi,
Ok, ich nehme das mal zur Kenntnis, aber warum ist das so?
weil jemand bei der Spezifikation vermutlich meinte, dass bei Identifiern etwas anderes Gefahren birgt.
Kennt jemand einen halbwegs plausiblen Grund für diese Beschränkung?
IDs werden von zig verschiedenen Systemen verwendet. Einige davon setzen sie z.B. in den Namespace von Variablen, die in so ziemlich jedem mir bekannten Umfeld _nicht_ mit einer Ziffer beginnen dürfen. Einen (ASCII-)Buchstaben als erstes Zeichen zu verlangen reduziert das Fehlerpotenzial ganz enorm.
Soll ich jetzt wirklich, nur um den Validator zufrieden zu stellen, jeweils einen Buchstaben davorsetzen und zwansläufig noch extra-Code schreiben, um der getElementById()-Methode jeweils das passende id-Format vorzukauen?
Wieso "nur"? Verlegen Elektriker Stromleitungen rechtwinklig, "nur" um die entsprechenden Normen zu erfüllen?
Cheatah