2017-09-29 64 views
1

我有一个包含一组字符串的JavaScript数组。我想用jQuery或JavaScript一行一行地在HTML div元素中显示它们。如何在jQuery .html()函数中打印javascript数组值?

我的代码是到现在为止:

var data = data; 
for (i = 1; i <= data.length; i++) { 

    data[i] = data[i] + '<br />'; 

    $(target).html('<a>'+data[i]+'</a>'); 
} 

我的数据显示在这一刻,现在。

Labelling MachinesLabels - Plastic, Metal, Foil etcLabels FabricLaboratories - MedicalLaboratories - TestingLaboratory Equipment & SuppliesLaboratory Equipment Services & Calibration 

我希望他们显示类似这样的链接(内标签):

Labelling Machines 
Labels - Plastic, Metal, Foil etc 
Labels Fabric 
Laboratories - MedicalLaboratories - Testing 
Laboratory Equipment & Supplies 
Laboratory Equipment Services & Calibration 

在此先感谢

+0

您需要使用append方法检查我的答案。 –

回答

2

您应该添加中断的链接标签之外,它的.html()只有一次,因为它完全替代了给定元素的innerHTML,即

str = ""; 
for (i = 1; i <= data.length; i++) { 
    str += "<a>" + data[i] + "</a><br />"; 
} 
$(target).html(str); 

我建议另一种方法,使用innerHTML的(JavaScript的)或另一种答案已经提到

for (i = 1; i <= data.length; i++) { 
    target.innerHTML += "<a>" + data[i] + "</a><br />"; 
} 
+2

'html()'方法替换循环中的每一次迭代的目标html – charlietfl

+0

我的不好,我没有意识到。我编辑了我的回答 –

+0

@charlietfl这就是为什么我使用append方法。 –

0

最彻底的方法追加(jQuery的)将被包裹在一个div。您需要使用.append()方法不覆盖已添加到目标的初始数据。

var data = ["Hello", "World", "Lorem", "Ipsum", "More length"]; 
 
for (var i = 0; i < data.length; i++) { 
 
    $("#result").append('<div><a href="#" class="link">' + data[i] + '</a></div>'); 
 
}
.link { 
 
    color: #5ca5cc; 
 
    margin-bottom: 10px; 
 
    text-decoration: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="result"></div>

清洁和更简单的代码与工作演示一起。

0

你的代码是不完整的here.Not知道你是否有声明变量i在code.Also任何地方,你是从第一个指数开始循环

而不是追加到DOM在每个迭代上,创建一个字符串和CONCAT的对它的价值。在完成迭代后追加它。

var data = data, 
htmlString=""; 
for (var i = 0; i <= data.length; i++) { 
htmlString+= data[i] + '<br />'; 
} 
$(target).append(htmlString); 
0

取而代之的是for/loop,你可以在一行中使用ES6与maptemplate literal

$(target).html(arr.map(el => `<a>${el}</a><br/>`)); 

DEMO