文档:createElementNS() 方法
Baseline 广泛可用 *
使用指定的命名空间 URI 和限定名称创建元素。
要创建不指定命名空间 URI 的元素,请使用 createElement() 方法。
语法
js
createElementNS(namespaceURI, qualifiedName)
createElementNS(namespaceURI, qualifiedName, options)
参数
namespaceURI-
一个字符串,指定要与元素关联的
namespaceURI。一些重要的命名空间 URI 是: qualifiedName(限定名称)-
一个字符串,指定要创建的元素的类型。创建元素的
nodeName属性将使用 qualifiedName 的值进行初始化。 options可选-
一个可选的
ElementCreationOptions对象,其中包含一个名为is的属性,其值是先前使用customElements.define()定义的自定义元素的标签名称。为了向后兼容,一些浏览器允许您在此处传递一个字符串而不是一个对象,其中字符串的值是自定义元素的标签名称。有关如何使用此参数的更多信息,请参阅扩展原生 HTML 元素。新元素将获得一个
is属性,其值为自定义元素的标签名称。自定义元素是仅在某些浏览器中可用的实验性功能。
返回值
新的 Element。
异常
NamespaceErrorDOMException-
如果
namespaceURI值不是有效的命名空间 URI,则抛出此异常。 InvalidCharacterErrorDOMException-
如果
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① |
浏览器兼容性
加载中…