如何在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);