我想在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);
}
}
你可能想得太笼统了,不同类型的事件可以有不同的参数,所以你应该考虑到这一点,并根据标签名设置属性。例如,如果你想创建 扣子 它将有 名称,这对于一个 跨越 或 鸿沟 或者如果你想创建一个 输入 元素,你可能需要设置一些 默认 价值.
要处理这个问题,你可以处理 标签 单独 或 群体 类似的元素(标签)与普通 属性.
回答你的观点。
1.)你可以直接把值
this.tagName = document.createElement(tagName);
2.) 这里的 "this "是一个对象,你所创建的元素存储在this.tagName上。
appendItem(parent) {
let appendTo = document.getElementsByTagName(parent);
appendTo.appendChild(this.TagName);
}