document.createelement()是最基础、最可控的html元素创建方法,返回未挂载的空节点,需手动设置属性、内容、事件后通过appendchild等方法插入dom。

document.createElement 是 JavaScript 中创建新 HTML 元素节点最基础、最常用的方法。它返回一个指定标签名的空元素对象,之后你可以设置属性、添加内容、再插入到页面中。
基本用法:创建一个空元素
语法很简单:
const element = document.createElement('div');
这行代码创建了一个 <div></div> 元素,但它还只是内存中的节点,尚未出现在页面上。
支持所有标准 HTML 标签名(如 'p'、'img'、'button'、'section'),也支持 SVG 元素(需用 document.createElementNS)。
给新节点添加内容和属性
创建后通常要配置它,常见操作包括:
- 设置文本内容:
element.textContent = 'Hello';(安全,防 XSS)或element.innerText = 'Hello';(受样式影响) - 设置 HTML 内容:
element.innerHTML = '<strong>Bold</strong>';(注意 XSS 风险) - 添加属性:
element.id = 'myBtn';、element.className = 'btn primary';、element.setAttribute('data-id', '123'); - 绑定事件:
element.addEventListener('click', () => alert('clicked'));
把新节点插入到页面中
创建并配置好后,必须显式插入 DOM 才能显示。常用插入方法有:
-
parent.appendChild(element):加到父元素末尾 -
parent.insertBefore(element, referenceNode):插在某个现有节点前 -
parent.prepend(element):加到父元素开头(现代浏览器支持) -
parent.after(element)或parent.before(element):插在父元素外部前后位置
例如:
const container = document.getElementById('app');
const newP = document.createElement('p');
newP.textContent = '这是动态添加的段落';
container.appendChild(newP);
小技巧与注意事项
- 批量插入多个节点时,推荐先用
DocumentFragment缓存,再一次性追加,减少重排重绘 - 创建
<input>、<textarea></textarea>等表单元素时,直接设.value比设setAttribute('value', ...)更可靠 - 创建自定义标签(如
<my-component></my-component>)也能用createElement,但需确保对应自定义元素已定义 - 不要对已插入 DOM 的节点重复调用
appendChild——它会自动从原位置移走,相当于“移动”而非“复制”











