此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Node:lookupPrefix() 方法

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

Node 接口的 lookupPrefix() 方法返回一个字符串,其中包含给定命名空间 URI 的前缀(如果存在),如果不存在则返回 null。如果可能存在多个前缀,则返回第一个前缀。

语法

js
lookupPrefix(namespace)

参数

namespace

一个字符串,包含需要查找的命名空间。空字符串等价于 null,且都会导致函数返回 null

备注:此参数不是可选的,但是可以设置为 null

返回值

包含相应前缀的字符串,如果没有找到,则返回 null。如果 namespace 为 null 或空字符串,则 lookupPrefix() 返回 null

如果节点是 DocumentTypeDocumentFragmentlookupPrefix() 总是返回 null

示例

备注:此示例在 HTML 文档中运行,其中 xmlns: 属性会被忽略(xmlns:xlink 除外)。Firefox 将所有元素的命名空间 URI 设置为 null,而 Chrome 和 Safari 会正确设置 HTML、SVG 和 MathML 元素的默认命名空间 URI。若需进行更具意义的测试,可打开独立的 SVG 文档并在其上下文中执行脚本。

html
<div class="hidden">
  <div>测试 HTML 元素</div>
  <svg>
    <text>测试 SVG 元素</text>
  </svg>
  <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="with-xlink">
    <text>含有 xlink 的测试 SVG 函数</text>
  </svg>
  <math>测试 MathML 元素</math>
</div>

<table>
  <thead>
    <tr>
      <th><code>namespaceURI</code></th>
      <th><code>&lt;div&gt;</code></th>
      <th><code>&lt;svg&gt;</code></th>
      <th><code>&lt;svg xmlns:xlink&gt;</code></th>
      <th><code>&lt;math&gt;</code></th>
    </tr>
  </thead>
  <tbody></tbody>
</table>
js
const htmlElt = document.querySelector("div");
const svgElt = document.querySelector("svg");
const svgEltXLink = document.querySelector("#with-xlink");
const mathElt = document.querySelector("math");

const tbody = document.querySelector("tbody");

for (const uri of [
  "http://www.w3.org/2000/xmlns/",
  "http://www.w3.org/XML/1998/namespace",
  "http://www.w3.org/1999/xhtml",
  "http://www.w3.org/2000/svg",
  "http://www.w3.org/1999/xlink",
  "http://www.w3.org/1998/Math/MathML",
  "",
  null,
]) {
  const row = document.createElement("tr");
  tbody.appendChild(row);
  row.appendChild(document.createElement("td")).textContent =
    JSON.stringify(uri);
  for (const el of [htmlElt, svgElt, svgEltXLink, mathElt]) {
    console.log(el, uri, el.lookupPrefix(uri));
    row.appendChild(document.createElement("td")).textContent = String(
      el.lookupPrefix(uri),
    );
  }
}

规范

Specification
DOM
# dom-node-lookupprefix

浏览器兼容性