2016-09-29 21 views
-1

我有一个我已经生成的数组,我想将它显示在html中作为垂直列表,最好作为每个单独的元素。在垂直列表中显示JavaScript数组

我已经做到了这一点:

var a = _.intersection(viewedUserLikedUsersArray, loggedInLikedUsersArray); 
    for (var i=0; i < a.length; i++){ 
    displayListOfMatches.innerHTML = a[i]; 
    } 

但显然这种方式将与数组中的最后一个元素取代的innerHTML上,而不是相互

+0

'displayListOfMatches.innerHTML + =“

”+ a [i] +“

”;' –

+1

@ChrisG:在innerHTML中使用'+ ='是个不错的主意。 –

+0

'displayListOfMatches.innerHTML = a.join(“
”);'将是一种方式;没有循环 – Thomas

回答

1

你可能会得到顶部堆叠每一个有人说这样做:

displayListOfMatches.innerHTML = "<p>" + a.join("</p><p>") + "</p>"; 

...其中工程请注意,数组条目的内容将作为HTML被解析为。与forEach

displayListOfMatches.innerHTML = a.map(function(entry) { 
    return "<p>" + entry.replace(/&/g, "&amp;").replace(/</g, "&lt;") + "</p>"; 
}).join(""); 

...或建立的元素,当您去,也许是:

如果这不行,您可以通过更换这些字符通过map建立一个HTML字符串

displayListOfMatches.innerHTML = ""; // You can leave this out if it's empty 
a.forEach(function(entry) { 
    var p = document.createElement("p"); 
    p.appendChild(document.createTextNode(entry)); 
    displayListOfMatches.appendChild(p); 
}); 

当然,在任何情况下,您都可以调整它以使用不同的元素/标记。

+0

好吧你觉得这是有道理的。不知道为什么即时通讯语法错误。我刚刚把你的代码放在一个函数中,现在它抱怨着最后一个括号... –

+0

@Theworm:那会是因为我放弃了'';'应该在第二个代码块的末尾。 :-) 对于那个很抱歉。它现在在那里。 –

+0

太棒了!非常感谢 –