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 &lt;svg&gt;</button>
  <button>Show value for &lt;label&gt;</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 表格仅在浏览器中加载

另请参见