Attr: namespaceURI 属性
namespaceURI
属性是 Attr
接口的只读属性,它返回属性的命名空间 URI,如果元素不在命名空间中,则返回 null
。
命名空间 URI 在创建 Attr
时设置,并且无法更改。可以使用 Element.setAttributeNS()
创建具有命名空间的属性。
注意: 属性不会从其附加到的元素继承其命名空间。如果属性没有显式指定命名空间,则它没有命名空间。
浏览器本身不会处理或强制执行命名空间验证。JavaScript 应用程序需要进行任何必要的验证。此外,请注意,一旦命名空间前缀与特定属性节点关联,就不能更改。
值
包含命名空间 URI 的字符串,如果属性不在命名空间中,则为 null
。
示例
以下示例显示了 HTML 元素和 SVG 元素情况下带前缀属性的结果。由于 HTML 不处理命名空间,因此在这种情况下它始终返回 null
。在 SVG 元素的情况下,它将返回 XML 命名空间的 URI,即 http://www.w3.org/XML/1998/namespace
。
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>
Namespace URI 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.namespaceURI;
});
i++;
}
规范
规范 |
---|
DOM 标准 # dom-attr-namespaceuri |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参见
- 属性
Attr.name
(返回属性的限定名称)、Attr.localName
(名称的本地部分)和Attr.prefix
(命名空间前缀)。 - 属性
Element.namespaceURI
与此属性等效,但适用于Element
。 - 方法
Element.setAttributeNS()
用于创建具有给定命名空间的属性。