我如何创建一个ES6类,使用给定的标签名创建新的HTML元素,并有方法对其进行操作?

问题描述 投票:0回答:1

我想在ES6中创建一个类,使用给定的标签名创建新的HTML元素。在这个类中,将有附加它或改变innerHTML的方法。

我的问题是 1)如何将新的标签名传入document.createElement中,因为字面意义上的 "标签名 "是不存在的。${} 2)在哪里将 "this"--新创建的 "HTMLElement "转化为HTML元素(createElement)。我感觉它不应该在构造函数中,但我不知道该把它放在哪里,难道这个类在创建时就会把它转化为HTML元素吗?

class HTMLElement {
  constructor (tagName){
    this.tagName = document.createElement(`${tagName}`);
  }

  addText(text) {
    this.innerHTML = text;
  }

  appendItem(parent) {
    let appendTo = document.getElementsByTagName(`${parent}`);
    appendTo.appendChild(this);
  }
}
javascript html class ecmascript-6 dom-manipulation
1个回答
1
投票

你可能想得太笼统了,不同类型的事件可以有不同的参数,所以你应该考虑到这一点,并根据标签名设置属性。例如,如果你想创建 扣子 它将有 名称,这对于一个 跨越鸿沟 或者如果你想创建一个 输入 元素,你可能需要设置一些 默认 价值.

要处理这个问题,你可以处理 标签 单独群体 类似的元素(标签)与普通 属性.

回答你的观点。

1.)你可以直接把值

this.tagName = document.createElement(tagName);

2.) 这里的 "this "是一个对象,你所创建的元素存储在this.tagName上。

appendItem(parent) {
    let appendTo = document.getElementsByTagName(parent);
    appendTo.appendChild(this.TagName);
  }
© www.soinside.com 2019 - 2024. All rights reserved.