javascript - 如何使用 Vanilla JS 创建和显示自定义组件 100 次
问题描述
亲爱的,
我的任务是创建自定义 HTML 组件,显示 100 次,向其添加按钮,这将删除它,并且每个第三个组件都应该是可点击的并在点击时改变颜色。到目前为止,我有这个https://codepen.io/GosiaPtak/pen/abOZmyq
class ElementList extends HTMLElement {
constructor() {
super();
let counter = 100;
const div = '';
const btn = '';
}
connectedCallback() {
this.div = document.createElement('div');
this.div.innerHTML = 'i am div';
this.btn = document.createElement('button');
this.btn.innerHTML = 'Click me';
this.div.appendChild(this.btn);
this.appendChild(this.div);
}
}
customElements.define('element-list', ElementList);
但我无法正确放置 while 循环,因此它会显示 100 次。
你能帮我吗,我从这里学习它:https ://javascript.info/custom-elements
亲切的问候,
解决方案
您正在使用您的代码定义一个自定义元素,该元素代表该对象的一个实例。现在要创建其中的多个,只需使用类定义之外的基本 javascript,如下面的代码所示。
class ElementList extends HTMLElement {
constructor() {
super();
const div = '';
const btn = '';
}
connectedCallback() {
this.div = document.createElement('div');
this.div.innerHTML = 'i am div';
this.btn = document.createElement('button');
this.btn.innerHTML = 'Click me';
this.div.appendChild(this.btn);
this.appendChild(this.div);
}
}
customElements.define('element-list', ElementList);
for(let i = 0; i <= 100; i++) {
let item = document.createElement('element-list');
document.body.appendChild(item);
}
有了这个 for 循环,也许还有一个可以传递给对象的参数,你可以意识到每三分之一应该是可点击的。
推荐阅读
- mongodb - MongoDB 匹配 $and 不起作用,但 $or 起作用
- javascript - 如何通过发布请求访问车把变量?
- javascript - 将带有 1 个 arg 的函数作为道具传递给子组件
- swift - 表达式类型“字符串”在没有更多上下文的情况下是模棱两可的?
- c# - 如何读取和写入 RFID 作为人机接口设备 C#
- c# - 如何使用 C# 对 MongoDB 集合中所有文档的键值求和
- react-native - 将原生移动屏幕反应到活动屏幕
- python - Python-Shmython - “Y”有这么难吗?
- ruby - 在 alpine docker 镜像上安装 docx_converter gem
- ios - 如何使用 CoreNFC 将 NFC 标签有效负载转换为 URL?