在JavaScript中创建HTML元素

JavaScript的Document.createElement()方法用于创建新的HTML元素。下面是它的使用示例:

const root = document.body;

const newElement = document.createElement('div');
newElement.textContent = 'Hello World';

root.append(newElement);

如你所见,创建一个元素很简单。繁琐的部分是需要设置所有的属性,然后将其添加到DOM中。更糟糕的是,创建具有相同属性集的多个元素需要大量重复的代码。

幸运的是,我们可以将元素创建抽象成一个函数。事实上,我们可以使用对象来传递属性给元素。使用Object.entries(),我们可以遍历对象并设置属性。下面是示例代码:

const root = document.body;

const createElement = (el, parent, prepend = false) => {
  const { nodeName = 'div', ...attrs } = el;
  const element = document.createElement(nodeName);
  Object.entries(attrs).forEach(([attr, value]) => {
    element[attr] = value;
  });
  if (prepend) parent.prepend(element);
  else parent.append(element);
};

createElement(
  {
    nodeName: 'div',
    textContent: 'Hello world',
  },
  root
);

```javascript
createElement(
  {
    nodeName: 'p',
    textContent: 'Hi',
  },
  root,
  true
);

这非常有用,但是如果我们有一个HTML字符串,我们想要从中创建一个元素,会发生什么呢?我们有一个createElement代码片段,可以做类似的事情。唯一缺少的部分是将其附加到父元素上。