31 Stimmen

Wird bei den Knoten-IDs im DOM zwischen Groß- und Kleinschreibung unterschieden?

Ist dieses HTML gültig? Oder ist die ID "a" die gleiche wie die ID "A"?

<div id="a">alpha</div>
<div id="A">Alpha</div>

38voto

notnoop Punkte 57727

Ja, es wird zwischen Groß- und Kleinschreibung unterschieden. Bei Attributwerten wird immer zwischen Groß- und Kleinschreibung unterschieden. Die verschiedenen Browser scheinen jedoch unterschiedliche Dinge zu tun.

Handhabung document.getElementById ist von Browser zu Browser unterschiedlich:

  1. Mozilla führt eine Suche unter Berücksichtigung der Groß- und Kleinschreibung durch.

  2. Internet Explorer : Ab IE 8 wird die Groß- und Kleinschreibung beachtet, ab IE 7 wird die Groß- und Kleinschreibung nicht beachtet.

20voto

Michael Morris Punkte 511

Da die obigen Antworten nur teilweise richtig sind, möchte ich hier etwas klarstellen. Im Zusammenhang mit dem DOM und Java Script ja, ID's sind Groß-und Kleinschreibung. In CSS sind sie nicht, wie CSS ist völlig unabhängig von Groß-und Kleinschreibung.

http://www.w3.org/TR/css3-selectors/#casesens

Die gesamte Selectors-Syntax unterscheidet innerhalb des ASCII-Bereichs nicht zwischen Groß- und Kleinschreibung (d. h. [a-z] und [A-Z] sind gleichwertig), mit Ausnahme der Teile, die nicht unter die Kontrolle von Selectors fallen. Die Unterscheidung zwischen Groß- und Kleinschreibung von Elementnamen, Attributnamen und Attributwerten in Selektoren hängt von der Dokumentensprache ab. In HTML beispielsweise wird bei Elementnamen nicht zwischen Groß- und Kleinschreibung unterschieden, in XML hingegen schon. Die Groß-/Kleinschreibung von Namespace-Präfixen ist in [CSS3NAMESPACE] definiert.

Aus diesem Grund ist es keine gute Idee, zwei id's in verschiedenen Fällen zu haben, da Sie nicht in der Lage sein werden, sie unabhängig voneinander nach id zu gestalten.

4voto

Grant Miller Punkte 23839

Betrachten Sie das folgende Element:

<div id="Example"></div>

In modernen Browsern werden die meisten JavaScript-Methoden zum Abrufen einer Element Objekt von id werden Groß- und Kleinschreibung unterschieden:

document.getElementById('Example')         // <div id="Example">
document.getElementById('example')         // null
document.querySelector('#Example')         // <div id="Example">
document.querySelector('#example')         // null
document.querySelector('[id="Example"]')   // <div id="Example">
document.querySelector('[id="example"]')   // null

Auf der anderen Seite können Sie die Selektor für Attribute ohne Berücksichtigung der Groß- und Kleinschreibung um ein Element auszuwählen durch id unabhängig von der Großschreibung:

document.querySelector('[id="Example" i]') // <div id="Example">
document.querySelector('[id="example" i]') // <div id="Example">

Die obige Methode funktioniert für alle HTML-Attributwerte innerhalb des ASCII-Bereichs.

Obwohl nicht empfohlen, können Sie auch die Suche ohne Berücksichtigung der Groß- und Kleinschreibung regulärer Ausdruck, um ein Element zu erhalten, indem id unabhängig vom Fall. Diese Methode hat das Potenzial, für mehr als nur case-insensitive pattern matching verwendet zu werden:

[...document.querySelectorAll('[id]')].find(e => /^Example$/i.test(e.id)) // <div id="Example">
[...document.querySelectorAll('[id]')].find(e => /^example$/i.test(e.id)) // <div id="Example">

In Bezug auf CSS ist die ID-Selektor ( #example ) unterscheidet nicht zwischen Groß- und Kleinschreibung, während die ID Attributselektor ( [id="example"] ) wird zwischen Groß- und Kleinschreibung unterschieden, es sei denn, Sie verwenden die Selektor für Attribute ohne Berücksichtigung der Groß- und Kleinschreibung ( [id="example" i] ):

#Example         { /* ... */ } /* Match */
#example         { /* ... */ } /* Match */
[id="Example"]   { /* ... */ } /* Match */
[id="example"]   { /* ... */ } /* No Match */
[id="Example" i] { /* ... */ } /* Match */
[id="example" i] { /* ... */ } /* Match */

2voto

Shog9 Punkte 151504

Nun, das können Sie ganz einfach testen... Aber ja, es wird zwischen Groß- und Kleinschreibung unterschieden.

1voto

Dan Bray Punkte 6353

Es ist auf allen modernen Browsern (IE 8+) gültig, aber ich empfehle es nicht, weil CSS ist die Groß- und Kleinschreibung egal. Es ist besser, sich auf eine Groß- und Kleinschreibung zu beschränken, um mögliche Verwechslungen oder Fehler mit CSS .

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