javascript - JavaScript - 基于对象数据数组创建元素
问题描述
如何仅从对象数据数组生成元素?
而不是这个:
var element1 = document.createElement('div');
element1.style.width = '100px';
element1.style.height = '100px';
我想要(类似)这个:
element = [none, element1, element2, element3, etc];
element[1] = {name:'element1', type:'div', width:'100px', height:'100px'};
var (element[1].name) = document.createElement(element[1].type);
(element[1].name).style.width = element[1].width;
(element[1].name).style.height= element[1].height;
解决方案
没有本地方法可以做到这一点(AFAIK),但你可以尝试一种即兴的方法,比如
function ArrayToElements(array) {
let elemList = {};
for (let i of array) {
let elem = document.createElement(i.type);
for (let j in i.attr) {
elem.setAttribute(j, i.attr[j]);
}
elemList[i.name] = elem;
}
return elemList;
}
此方法支持所有属性,包括style
.
我在这里创建了一个工作示例。
推荐阅读
- operating-system - 分时系统也是多处理系统吗?
- php - passing variables by ajax to php page
- docker - sbt 原生打包器 dockerCommands 复制
- r - 在 R 中查找相似的文本
- lambda - 如何从无服务器 lambda 内部抛出错误
- amazon-web-services - 无法在 EC2 中增加 docker 卷大小
- apache-zookeeper - Zookeeper 中的 cxid 是做什么用的
- xaml - Xamarin 按钮无边框
- javascript - 如何在 d3js 中的过渡期间删除轴路径/线
- angular - NullInjectorError:使用 aot 在 prod 模式下没有 NgbAlertConfig 提供程序