Element#
Element.localName#
Właściwość localName
zwraca nazwę lokalną dla danego elementu (czyli część lokalną z nazwy kwalifikowanej). Właściwość jest tylko do odczytu.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var local_name = element.localName;
gdzie poszczególne człony oznaczają:
- local_name - łańcuch znakowy reprezentujący nazwę lokalną elementu.
- element - węzeł będący obiektem kontekstu.
W przypadku elementów bez prefiksu przestrzeni nazw wartość właściwość localName
jest identyczna z wartościami zwracanymi przez polecenia Node.nodeName
lub Element.tagName
, z zastrzeżeniem, że w dokumentach HTML oraz elementach w przestrzeni nazw HTML będzie to spełnione dopiero po konwersji wszystkich odpowiadających wartości na małe lub duże litery.
Prosty przykład:
<script>
var html = document.documentElement; // referencja do elementu HTML
document.write("document.documentElement");
document.write("<br>");
document.write("Interfejs:" + html); // [object HTMLHtmlElement]
document.write("<br>");
document.write("Właściwość namespaceURI: " + html.namespaceURI); // http://www.w3.org/1999/xhtml
document.write("<br>");
document.write("Właściwość localName: " + html.localName); // html
document.write("<br>");
document.write("Właściwość nodeName: " + html.nodeName); // HTML
document.write("<br>");
document.write("Właściwość tagName: " + html.tagName); // HTML
document.write("<br><br>");
var newElement1 = document.createElementNS("moja_przestrzeń_nazw", "test:p");
document.write("document.createElementNS('moja_przestrzeń_nazw', 'test:p');");
document.write("<br>");
document.write("Interfejs:" + newElement1); // [object Element]
document.write("<br>");
document.write("Właściwość namespaceURI: " + newElement1.namespaceURI); // moja_przestrzeń_nazw
document.write("<br>");
document.write("Właściwość localName: " + newElement1.localName); // p
document.write("<br>");
document.write("Właściwość nodeName: " + newElement1.nodeName); // test:p
document.write("<br>");
document.write("Właściwość tagName: " + newElement1.tagName); // test:p
document.write("<br><br>");
var newElement2 = document.createElementNS("http://www.w3.org/1999/xhtml", "test:p");
document.write("document.createElementNS('http://www.w3.org/1999/xhtml', 'test:p');");
document.write("<br>");
document.write("Interfejs:" + newElement2); // [object HTMLParagraphElement]
document.write("<br>");
document.write("Właściwość namespaceURI: " + newElement2.namespaceURI); // http://www.w3.org/1999/xhtml
document.write("<br>");
document.write("Właściwość localName: " + newElement2.localName); // p
document.write("<br>");
document.write("Właściwość nodeName: " + newElement2.nodeName); // TEST:P
document.write("<br>");
document.write("Właściwość tagName: " + newElement2.tagName); // TEST:P
document.write("<br><br>");
var newElement3 = document.createElementNS("http://www.w3.org/1999/xhtml", "test:nowy");
document.write("document.createElementNS('http://www.w3.org/1999/xhtml', 'test:nowy');");
document.write("<br>");
document.write("Interfejs:" + newElement3); // [object HTMLUnknownElement]
document.write("<br>");
document.write("Właściwość namespaceURI: " + newElement3.namespaceURI); // http://www.w3.org/1999/xhtml
document.write("<br>");
document.write("Właściwość localName: " + newElement3.localName); // p
document.write("<br>");
document.write("Właściwość nodeName: " + newElement3.nodeName); // TEST:P
document.write("<br>");
document.write("Właściwość tagName: " + newElement3.tagName); // TEST:P
document.write("<br><br>");
var newDoc = document.implementation.createDocument(null, "html", null); // nowy dokument XML
var newElement4 = newDoc.createElementNS("http://www.w3.org/1999/xhtml", "test:p");
document.write("newDoc.createElementNS('http://www.w3.org/1999/xhtml', 'test:p');");
document.write("<br>");
document.write("Interfejs:" + newElement4); // [object HTMLParagraphElement]
document.write("<br>");
document.write("Właściwość namespaceURI: " + newElement4.namespaceURI); // http://www.w3.org/1999/xhtml
document.write("<br>");
document.write("Właściwość localName: " + newElement4.localName); // p
document.write("<br>");
document.write("Właściwość nodeName: " + newElement4.nodeName); // test:p
document.write("<br>");
document.write("Właściwość tagName: " + newElement4.tagName); // test:p
document.write("<br><br>");
document.write(document.localName); // undefined (Firefox, Chrome), null (pozostałe przeglądarki) - błędne działanie
document.write("<br>");
document.write(Element.prototype.hasOwnProperty("localName")); // true
document.write("<br>");
document.write(html.__proto__.__proto__.__proto__.hasOwnProperty("localName")); // true
document.write("<br>");
document.write(html.__proto__.__proto__.__proto__); // [object ElementPrototype]
</script>
Właściwość localName
dla węzła typu Element
pojawia się dopiero w specyfikacji DOM4. W starszych wersjach DOM właściwość była definiowana dla dowolnego węzła, ale obecnie została całkowicie usunięta z interfejsu Node.
Na chwilę obecną jedynie przeglądarki Firefox i Chrome obsługują właściwość localName
zgodnie z najnowszymi wymaganiami specyfikacji DOM4, pozostałe programy implementują wcześniejsze wytyczne (szczegóły).
Składnia Web IDL#
interface Element : Node { readonly attribute DOMString localName; }