Skip to content

@longmo-utils/browser / createElement

Function: createElement()

ts
function createElement<K>(
   tag, 
   attributes?, 
   children?): HTMLElementTagNameMap[K];

创建 DOM 元素,可指定属性和子元素

Type Parameters

Type Parameter
K extends keyof HTMLElementTagNameMap

Parameters

ParameterTypeDescription
tagKHTML 标签名 (例如 'div', 'span', 'a')
attributes?Record<string, string>可选的属性键值对对象
children?(string | Node)[]可选的子元素或文本节点数组

Returns

HTMLElementTagNameMap[K]

创建的 DOM 元素

Examples

typescript
// 创建一个简单的 div
const div = createElement('div');

// 创建带文本的 span
const span = createElement('span', {}, ['Hello, World!']);

// 创建图片元素
const img = createElement('img', {
  src: 'image.jpg',
  alt: 'Image description',
  width: '200'
});
typescript
// 创建输入框
const input = createElement('input', {
  type: 'text',
  placeholder: 'Enter your name',
  name: 'username'
});

// 创建带多个属性的按钮
const button = createElement('button', {
  id: 'submit',
  type: 'submit',
  class: 'btn btn-primary',
  'data-action': 'submit-form'
}, ['Submit']);
typescript
// 创建带头部、主体和底部的卡片
const card = createElement('div', { class: 'card' }, [
  createElement('div', { class: 'card-header' }, [
    createElement('h3', {}, ['Card Title']),
    createElement('button', { class: 'close' }, ['×'])
  ]),
  createElement('div', { class: 'card-body' }, [
    createElement('p', {}, ['This is the card content'])
  ]),
  createElement('div', { class: 'card-footer' }, [
    createElement('button', {}, ['Cancel']),
    createElement('button', { class: 'primary' }, ['Save'])
  ])
]);
typescript
// 创建无序列表
const ul = createElement('ul', {}, [
  createElement('li', {}, ['First item']),
  createElement('li', {}, ['Second item']),
  createElement('li', {}, ['Third item'])
]);

// 创建表格行
const tr = createElement('tr', {}, [
  createElement('td', {}, ['John']),
  createElement('td', {}, ['30']),
  createElement('td', {}, ['john@example.com'])
]);

Released under the MIT License.