Attr: localName 属性
Attr 接口中只读的 localName 属性会返回属性的限定名称(qualified name)的本地部分(local part),也就是属性的名称,去除了前面的命名空间(namespace)。例如,如果限定名称是 xml:lang,那么返回的本地名称是 lang(前提是该元素支持该命名空间)。
无论在属性创建时使用的是何种大小写,本地名称始终是小写的。
注意: HTML 只支持 SVG 和 MathML 元素上固定的命名空间。这些命名空间包括 xml(用于 xml:lang 属性)、xlink(用于 xlink:href、xlink:show、xlink:target 和 xlink:title 属性)以及 xpath。
这意味着 HTML 元素的属性的本地名称始终与其限定名称相等:冒号会被视为普通字符。而在 XML 中(例如 SVG 或 MathML),冒号表示前缀的结束,冒号之前的内容是命名空间;此时本地名称可能与限定名称不同。
值
一个字符串,表示属性限定名称的本地部分。
示例
下面的示例展示了在点击相应按钮时,前两个元素的第一个属性的本地名称。<svg> 元素是 XML,支持命名空间,因此本地名称(lang)与限定名称 xml:lang 不同。<label> 元素是 HTML,不支持命名空间,因此本地名称和限定名称均为 xml:lang。
HTML
html
<svg xml:lang="en-US" class="struct" height="1" width="1">Click me</svg>
<label xml:lang="en-US" class="struct"></label>
<p>
<button>Show value for <svg></button>
<button>Show value for <label></button>
</p>
<p>
Local part of the attribute <code>xml:lang</code>:
<output id="result">None.</output>
</p>
JavaScript
js
const elements = document.querySelectorAll(".struct");
const buttons = document.querySelectorAll("button");
const outputEl = document.querySelector("#result");
let i = 0;
for (const button of buttons) {
const element = elements[i];
button.addEventListener("click", () => {
const attribute = element.attributes[0];
outputEl.value = attribute.localName;
});
i++;
}
规范
| 规范 |
|---|
| DOM # dom-attr-localname |
浏览器兼容性
加载中…
另见
Attr.name属性,返回属性的限定名称;Attr.prefix属性,返回命名空间前缀。Element.localName()属性,返回Element的本地名称。