Document: createElement() 方法
在 HTML 文档中,document.createElement()
方法创建由 tagName 指定的 HTML 元素,如果 tagName 未被识别,则创建 HTMLUnknownElement
。
语法
js
createElement(tagName)
createElement(tagName, options)
参数
返回值
新的 Element
。
注意:如果文档是 HTMLDocument(最常见的情况),则返回一个新的 HTMLElement。否则,返回一个新的 Element。
示例
基本示例
这将创建一个新的 <div>
并将其插入到 ID 为“div1
”的元素之前。
HTML
html
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<title>Working with elements</title>
</head>
<body>
<div id="div1">The text above has been created dynamically.</div>
</body>
</html>
JavaScript
js
document.body.onload = addElement;
function addElement() {
// create a new div element
const newDiv = document.createElement("div");
// and give it some content
const newContent = document.createTextNode("Hi there and greetings!");
// add the text node to the newly created div
newDiv.appendChild(newContent);
// add the newly created element and its content into the DOM
const currentDiv = document.getElementById("div1");
document.body.insertBefore(newDiv, currentDiv);
}
结果
Web 组件示例
以下示例代码段取自我们的 expanding-list-web-component 示例(也可以在线查看)。在本例中,我们的自定义元素扩展了 HTMLUListElement
,它表示 <ul>
元素。
js
// Create a class for the element
class ExpandingList extends HTMLUListElement {
constructor() {
// Always call super first in constructor
super();
// constructor definition left out for brevity
// …
}
}
// Define the new element
customElements.define("expanding-list", ExpandingList, { extends: "ul" });
如果我们想以编程方式创建此元素的实例,我们将使用以下代码行进行调用
js
let expandingList = document.createElement("ul", { is: "expanding-list" });
新元素将获得一个 is
属性,其值为自定义元素的标签名称。
注意:为了与 自定义元素规范 的先前版本保持向后兼容性,某些浏览器允许您在此处传递字符串而不是对象,其中字符串的值为自定义元素的标签名称。
规范
规范 |
---|
DOM 标准 # ref-for-dom-document-createelement① |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。