如何在javascript中连接对象数组,然后插入html元素

如何在javascript中连接对象数组,然后插入html元素,javascript,object,Javascript,Object,var link1=''; var link2=document.createElement(“a”); var linkText=document.createTextNode(“Link”+i); link2.appendChild(linkText); setAttribute('href','/path/file.html'); 字符串链接按预期工作,现在我想为对象链接实现相同的结果。 我们的目标是用一组链接动态地填充一个变量,并在一个步骤中添加整个内容,而不会影响循环中的DOM。如果

var link1='';
var link2=document.createElement(“a”);
var linkText=document.createTextNode(“Link”+i);
link2.appendChild(linkText);
setAttribute('href','/path/file.html');
字符串链接按预期工作,现在我想为对象链接实现相同的结果。 我们的目标是用一组链接动态地填充一个变量,并在一个步骤中添加整个内容,而不会影响循环中的DOM。

如果这样做:

arrLink2.push(link2.outerHTML);
这将为您提供与
arrLink1
相同的输出。两个数组中的值将相同

如果您不需要担心IE 8(或使用polyfill),您可以使用而不是
加入

var Link2Res = arrLink2.reduce(function (previousValue, currentValue, index/*, array */) {
    return previousValue + (index > 0 ? '<br>' : '') + currentValue.outerHTML;
}, '');
var Link2Res=arrLink2.reduce(函数(previousValue、currentValue、index/*、array*/){
返回previousValue+(索引>0?“
”:“”)+currentValue.outerHTML; }, '');
不太确定我是否完全理解您的问题。如果您想避免在循环中触及DOM,createDocumentFragment()是一个不错的选择

var links = [
  {
    text: 'link 1',
    href: '/path/file1.html'
  },
  {
    text: 'link 2',
    href: '/path/file2.html'
  }
];

var frag = document.createDocumentFragment();

for (var i = 0, len = links.length, a, l; i < len; i++) {
  l = links[i];
  a = document.createElement('a');
  a.href = l.href;
  a.innerText = l.text;
  frag.appendChild(a);
}

document.body.appendChild(frag);
var链接=[
{
文本:“链接1”,
href:'/path/file1.html'
},
{
文本:“链接2”,
href:'/path/file2.html'
}
];
var frag=document.createDocumentFragment();
对于(变量i=0,len=links.length,a,l;i
是的,这是纯粹的目标!非常感谢你!outerHTML的使用非常好,我完全忘记了它。谢谢
var links = [
  {
    text: 'link 1',
    href: '/path/file1.html'
  },
  {
    text: 'link 2',
    href: '/path/file2.html'
  }
];

var frag = document.createDocumentFragment();

for (var i = 0, len = links.length, a, l; i < len; i++) {
  l = links[i];
  a = document.createElement('a');
  a.href = l.href;
  a.innerText = l.text;
  frag.appendChild(a);
}

document.body.appendChild(frag);