从对象动态创建元素

莫顿·哈格

我有一个看起来像这样的对象

var nodes = [{
                'name': 'Test1',
                'address': 'Street 1',
                'zipcode': '1234',
                'city': 'Big City',
                'phone': '12345678',
                'email': '[email protected]',
                'web': 'www.test.com'
            },
            {
                'name': 'Test12',
                'address': 'Street 5',
                'zipcode': '5678',
                'city': 'Bigger City',
                'phone': '89898989',
                'email': '[email protected]',
                'web': 'www.test2.com'
            }
        ]

我想要的是遍历这个对象并从值动态创建一个带有 textNode 的 span 元素,并使用类的键

var elm = document.createElement('span')
elm.appendChild(document.createTextNode(THEVALUE))
elm.setAttribute('class', THEKEY)
li.appendChild(elm)

目前我正在使用基本的 for 循环,但我不确定仅提取密钥的最佳方法

for (var i = 0; i < nodes.length; i++) {
   var elm = document.createElement('span')
   elm.appendChild(document.createTextNode(nodes[i]))
   li.appendChild(elm)
}

预期的结果是

<span class="name">Test1</span>
<span class="address">Street 1</span>

我正在使用香草 JS

某些表演

您可以迭代使用Object.entries以同时获取键和值。当一个元素的唯一子节点将是一个文本节点时,分配给它textContent比显式创建一个文本节点更简单并且可能更好

var nodes = [{
  'name': 'Test1',
  'address': 'Street 1',
  'zipcode': '1234',
  'city': 'Big City',
  'phone': '12345678',
  'email': '[email protected]',
  'web': 'www.test.com'
  },
  {
  'name': 'Test12',
  'address': 'Street 5',
  'zipcode': '5678',
  'city': 'Bigger City',
  'phone': '89898989',
  'email': '[email protected]',
  'web': 'www.test2.com'
  }
]
const ul = document.querySelector('ul');
nodes.forEach(node => {
  const li = ul.appendChild(document.createElement('li'));
  for (const [key, val] of Object.entries(node)) {
    const span = document.createElement('span');
    span.className = key;
    span.textContent = val;
    li.appendChild(span);
  }
});
console.log(ul.innerHTML);
<ul></ul>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态创建元素

来自分类Dev

AngularJS:动态创建元素

来自分类Dev

在Angular中动态创建元素

来自分类Dev

动态创建元素的角度ng隐藏

来自分类Dev

使用javascript动态创建元素

来自分类Dev

在Angular中动态创建元素

来自分类Dev

动态创建元素的Angularjs绑定问题

来自分类Dev

使用CycleJS动态创建元素

来自分类Dev

在JavaScript中使用EventListener动态创建元素

来自分类Dev

动态创建元素时,选择的插件不起作用

来自分类Dev

动态创建元素并添加onclick事件不起作用

来自分类Dev

如何使用JSON文件在HTML中动态创建元素

来自分类Dev

XSLT-使用Java动态创建元素

来自分类Dev

动态创建元素时Javascript事件处理程序消失

来自分类Dev

使用JSON文件中的数据动态创建元素

来自分类Dev

javascript创建元素,动态增加类名的数量

来自分类Dev

在javascript中动态创建元素和类的实现

来自分类Dev

动态创建元素,但使用<a href>代替按钮onClick

来自分类Dev

在 JavaScript 中设置动态创建元素的图像源

来自分类Dev

如何使用javascript在html页面中动态创建元素?

来自分类Dev

创建元素列表

来自分类Dev

在P5.js中创建元素的对象

来自分类Dev

D3.js对象数组未创建元素

来自分类Dev

如何使用 forEach 遍历 Javascript 数组对象以创建元素?

来自分类Dev

用jQuery创建元素

来自分类Dev

使用jQuery创建元素

来自分类Dev

用类创建元素

来自分类Dev

使用属性创建元素

来自分类Dev

AngularJS使用指令($ compile)并使用单例服务动态创建元素