2287 Stimmen

Was sind gültige Werte für das Attribut id in HTML?

Bei der Erstellung des id Attribute für HTML-Elemente, welche Regeln gibt es für den Wert?

119 Stimmen

Dies unterscheidet sich zwischen HTML5 und früheren Versionen der Spezifikation. Ich habe es hier erklärt: mathiasbynens.be/notes/html5-id-class

5 Stimmen

Mir ist aufgefallen, dass SharePoint 2010 einen Wert wie diesen - {8CC7EF38-31D8-4786-8C20-7E6D56E49AE2}-{E60CE5E2-6E64-4350-A884-654B72DA5A53} für eine dynamisch generierte Tabelle innerhalb eines Webparts zuweist und eine Seite, die einen ID-Wert dieser Art enthält, in keinem der gängigen Browser bricht. Der Umgang mit solchen ID-Werten über JavaScript ist allerdings schwierig - mvark.blogspot.in/2012/07/

4 Stimmen

HTML4- und HTML5-Anforderungen für ID Werte sind sehr unterschiedlich. Hier ist eine schnelle und vollständige Übersicht über HTML5 ID Regeln: stackoverflow.com/a/31773673/3597276

69voto

Mr Shark Punkte 24994

Streng genommen sollte sie mit

[A-Za-z][-A-Za-z0-9_:.]*

Aber jQuery scheint Probleme mit Doppelpunkten zu haben, so dass es vielleicht besser ist, sie zu vermeiden.

19 Stimmen

Oder alternativ: "es wäre also besser, Jquery zu vermeiden" ;)

0 Stimmen

0 Stimmen

@domsson Warum sollten wir JQuery vermeiden? Könnten Sie uns bitte mehr Informationen geben?

68voto

Zaheer Ahmed Punkte 27340

HTML5:

Es beseitigt die zusätzlichen Beschränkungen für den id Attribut ( siehe hier ). Die einzigen verbleibenden Anforderungen (abgesehen von der Eindeutigkeit des Dokuments) sind:

  1. der Wert muss mindestens ein Zeichen enthalten (darf nicht leer sein)
  2. er darf keine Leerzeichen enthalten.

Vor-HTML5:

ID sollte übereinstimmen:

[A-Za-z][-A-Za-z0-9_:.]*
  1. Muss Start mit A-Z oder a-z Zeichen
  2. Kann enthalten - (Bindestrich), _ (Unterstrich), : (Doppelpunkt) und . (Zeitraum)

Aber man sollte vermeiden : y . denn:

Eine ID könnte zum Beispiel mit "a.b:c" bezeichnet sein und in der Formatvorlage als #a.b:c referenziert werden, aber sie könnte nicht nur die id für das Element sein, sondern auch id "a", Klasse "b", Pseudoselektor "c" bedeuten. Es ist am besten, die Verwirrung zu vermeiden und nicht mehr mit . y : insgesamt.

0 Stimmen

In HTML5 akzeptiert id keine id="c365720c"

3 Stimmen

Das tut HTML5 tatsächlich.

36voto

blacksun1 Punkte 359

Bindestriche, Unterstriche, Punkte, Doppelpunkte, Zahlen und Buchstaben sind alle für die Verwendung mit CSS und jQuery gültig. Die folgenden Zeichen sollten funktionieren, aber sie müssen auf der gesamten Seite eindeutig sein und mit einem Buchstaben [A-Za-z] beginnen.

Die Arbeit mit Doppelpunkten und Punkten erfordert ein wenig mehr Arbeit, aber wie das folgende Beispiel zeigt, ist es machbar.

<html>
<head>
<title>Cake</title>
<style type="text/css">
    #i\.Really\.Like\.Cake {
        color: green;
    }
    #i\:Really\:Like\:Cake {
        color: blue;
    }
</style>
</head>
<body>
    <div id="i.Really.Like.Cake">Cake</div>
    <div id="testResultPeriod"></div>

    <div id="i:Really:Like:Cake">Cake</div>
    <div id="testResultColon"></div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            var testPeriod = $("#i\\.Really\\.Like\\.Cake");
            $("#testResultPeriod").html("found " + testPeriod.length + " result.");

            var testColon = $("#i\\:Really\\:Like\\:Cake");
            $("#testResultColon").html("found " + testColon.length + " result.");
        });
    </script>
</body>
</html>

35voto

pdc Punkte 2266

In der Praxis verwenden viele Standorte id Attribute, die mit Zahlen beginnen, auch wenn dies technisch gesehen kein gültiges HTML ist.

El HTML 5 Entwurfsspezifikation lockert die Regeln für die id y name Attribute: Sie sind jetzt nur noch undurchsichtige Zeichenketten, die keine Leerzeichen enthalten dürfen.

33voto

Sergio Punkte 27870

HTML5

Dabei ist zu beachten, dass die ID eindeutig sein muss, d. h. es darf nicht mehrere Elemente in einem Dokument geben, die denselben id-Wert haben.

Die Regeln für ID-Inhalte in HTML5 sind (abgesehen von der Eindeutigkeit):

This attribute's value must not contain white spaces. [...]
Though this restriction has been lifted in HTML 5,
an ID should start with a letter for compatibility.

Dies ist die W3 Angaben zur ID (von MDN):

Any string, with the following restrictions:
must be at least one character long
must not contain any space characters
Previous versions of HTML placed greater restrictions on the content of ID values
(for example, they did not permit ID values to begin with a number).

Weitere Informationen:

  • W3 - globale Attribute ( id )
  • MDN Attribut ( id )

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X