在一个 HTML 文档中, Document.createElement()
方法创建由tagName 或一个HTMLUnknownElement
如果tagName不被识别, 指定的HTML元素。
在一个 XUL 文档中,它创建指定的XUL元素。在其他文档中,它创建一个具有null命名空间URI的元素。
要显式指定元素的命名空间URI,请使用 document.createElementNS()
。
语法
let element = document.createElement(tagName[, options]
);
参数
tagName
指定要创建元素类型的字符串,创建元素时的
nodeName
使用tagName的值为初始化,该方法不接受使用限定名称(如:"html:a"),在HTML文档上调用createElement()方法创建元素之前会将tagName转化成小写,在Firefox, Opera 和 Chrome内核中. createElement(null) 等同于 createElement("null")
options
可选- An optional
ElementCreationOptions
object containing a single property namedis
, whose value is the tag name for a custom element previously defined usingcustomElements.define()
. For backwards compatibility with previous versions of the Custom Elements specification, some browsers will allow you to pass a string here instead of an object, where the string's value is the custom element's tag name. See Extending native HTML elements for more information on how to use this parameter. - The new element will be given an
is
attribute whose value is the custom element's tag name. Custom elements are an experimental feature only available in some browsers.
Return value
The new Element
.
- element 是创建的
Element
对象。 - tagName 指定将要创建的元素类型的字符串。创建的element的
nodeName
会被初始化为tagName的值。该方法不接受带条件的元素名字(例如: html:a)。 - options 是一个可选的 ElementCreationOptions 对象. 如果这个对象被定义并赋予了一个 is 特性,则创建的element的 is 属性会被初始化为这个特性的值. 如果这个对象没有 is 特性,则值为空.
示例
创建一个新的<div>并且插入到ID为“div1”的元素前。
HTML
<!DOCTYPE html> <html> <head> <title>||Working with elements||</title> </head> <body> <div id="div1">The text above has been created dynamically.</div> </body> </html>
JavaScript
document.body.onload = addElement; function addElement () { // create a new div element // and give it some content var newDiv = document.createElement("div"); var newContent = document.createTextNode("Hi there and greetings!"); newDiv.appendChild(newContent); //add the text node to the newly created div. // add the newly created element and its content into the DOM var currentDiv = document.getElementById("div1"); document.body.insertBefore(newDiv, currentDiv); }
注意
- 当在一个被标记为HTML文档的文档对象上执行时,createElement()优先将参数转换为小写。
- 当创建一个带限制条件的元素时,请使用
document.createElementNS()
。 - Gecko 2.0(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)之前,quirks模式下tagName可以包含尖括号(<和>);从Gecko2.0开始,该方法在quirks模式和标准模式下表现一致。
- 从Gecko19.0开始,
createElement(null)和createElement("null")相同。注意Opera将null字符串化,但是Chrome和IE都会抛出错误。
- 从Gecko22.0(Firefox 22.0 / Thunderbird 22.0 / SeaMonkey 2.19)开始,当参数为"bgsounds", "multicol", 或"image"时,
createElement()
不再使用HTMLSpanElement
接口, 参数为"bgsound" 和 "multicol"时,使用HTMLUnknownElement
,为“image”时使用HTMLElement
HTMLElement
。 createElement
的Gecko实现不遵循XUL和XHTML的DOM说明文档: 创建元素的localName
和namespaceURI不会被设置为null
. 更多细节见bug 280692。- is 属性是 Custom Elements W3C Working Draft 的一部分, 同时, 该属性是一个只在部分浏览器上可用的试验性特性。