首页 > 解决方案 > 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;

标签: javascript

解决方案


没有本地方法可以做到这一点(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.
我在这里创建了一个工作示例。


推荐阅读