2016-09-29 47 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

太棒了!非常感謝 –