文档:createElementNS() 方法

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

* 此特性的某些部分可能存在不同级别的支持。

使用指定的命名空间 URI 和限定名称创建元素。

要创建不指定命名空间 URI 的元素,请使用 createElement() 方法。

语法

js
createElementNS(namespaceURI, qualifiedName)
createElementNS(namespaceURI, qualifiedName, options)

参数

namespaceURI

一个字符串,指定要与元素关联的 namespaceURI。一些重要的命名空间 URI 是:

HTML

http://www.w3.org/1999/xhtml

SVG

http://www.w3.org/2000/svg

MathML

http://www.w3.org/1998/Math/MathML

qualifiedName(限定名称)

一个字符串,指定要创建的元素的类型。创建元素的 nodeName 属性将使用 qualifiedName 的值进行初始化。

options 可选

一个可选的 ElementCreationOptions 对象,其中包含一个名为 is 的属性,其值是先前使用 customElements.define() 定义的自定义元素的标签名称。为了向后兼容,一些浏览器允许您在此处传递一个字符串而不是一个对象,其中字符串的值是自定义元素的标签名称。有关如何使用此参数的更多信息,请参阅扩展原生 HTML 元素

新元素将获得一个 is 属性,其值为自定义元素的标签名称。自定义元素是仅在某些浏览器中可用的实验性功能。

返回值

新的 Element

异常

NamespaceError DOMException

如果 namespaceURI 值不是有效的命名空间 URI,则抛出此异常。

InvalidCharacterError DOMException

如果 qualifiedName 值不是有效的 XML 名称,则抛出此异常;例如,它以数字、连字符或句点开头,或包含字母数字字符、下划线、连字符或句点以外的字符。

示例

这将在 XHTML 命名空间中创建一个新的 <div> 元素,并将其附加到 vbox 元素。尽管这不是一个非常有用的 XUL 文档,但它确实演示了在单个文档中使用来自两个不同命名空间的元素。

xml
<?xml version="1.0"?>
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      xmlns:html="http://www.w3.org/1999/xhtml"
      title="||Working with elements||"
      onload="init()">

<script><![CDATA[
let container;
let newDiv;
let textNode;

function init() {
  container = document.getElementById("ContainerBox");
  newDiv = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
  textNode = document.createTextNode(
    "This is text that was constructed dynamically with createElementNS and createTextNode then inserted into the document using appendChild.",
  );
  newDiv.appendChild(textNode);
  container.appendChild(newDiv);
}
]]></script>

 <vbox id="ContainerBox" flex="1">
  <html:div>
   The script on this page will add dynamic content below:
  </html:div>
 </vbox>

</page>

注意:上面给出的示例使用了内联脚本,这在 XHTML 文档中是不推荐的。这个特定的示例实际上是一个嵌入 XHTML 的 XUL 文档,但是,该建议仍然适用。

规范

规范
DOM
# ref-for-dom-document-createelementns①

浏览器兼容性

另见