将数组元素值放在span jquery中

时间:2015-07-06 05:37:33

标签: javascript jquery

var data = [{"id":"2015-07-003","cname":"John Smith ","caddress":"Tokyo,Japan","ccontact":"123"},{"id":"2015-07-003","cname":"James Harden","caddress":"Osaka Japan","ccontact":"345"}]



$.each(data, function(item, element) {
  alert(element.cname);
  $('#name').text(element.cname);
});


<span id='name'></span>

在上面我想把数组中的名字放在span中,但是发生了什么只是最后一个显示了一个名字。意思是名称被覆盖我如何迭代名称以便显示所有名称

我希望它看起来像

John Smith
James Harden

4 个答案:

答案 0 :(得分:8)

问题是使用.text()将使用新值覆盖以前的值,您需要继续将值附加到前一个值。

所以一个解决方案是创建一个cname数组,然后使用.join()生成所需的输出html并使用.html()来设置内容

&#13;
&#13;
var data = [{
  "id": "2015-07-003",
  "cname": "John Smith ",
  "caddress": "Tokyo,Japan",
  "ccontact": "123"
}, {
  "id": "2015-07-003",
  "cname": "James Harden",
  "caddress": "Osaka Japan",
  "ccontact": "345"
}]


$('#name').html($.map(data, function(item) {
  return item.cname
}).join('<br />'))
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span id='name'></span>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

使用 append()

  $('#name').append(element.cname+"<br>");

<强> DEMO

答案 2 :(得分:1)

var str = '';
$.each(data, function (item, element) {
    str += element.cname + '<br />';
});
$('#name').html(str);

希望这有帮助。

答案 3 :(得分:1)

//Declare a variable
var data=""

$.each(data, function(item, element) {
//Append element to data variable.

  alert(element.cname);
  data+=element.cname;
});

//Append the entire data to the span at the end.
$('#name').append(data);