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>
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>
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:
Mozilla führt eine Suche unter Berücksichtigung der Groß- und Kleinschreibung durch.
Internet Explorer : Ab IE 8 wird die Groß- und Kleinschreibung beachtet, ab IE 7 wird die Groß- und Kleinschreibung nicht beachtet.
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.
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 */
Nun, das können Sie ganz einfach testen... Aber ja, es wird zwischen Groß- und Kleinschreibung unterschieden.
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.