如何将对象的键/值对写入页面

时间:2013-11-13 18:22:46

标签: javascript jquery

我正在尝试使用jquery的.each()函数将对象中的键/值对写入页面。我只能写出最后一个键/值对。

这是小提琴和代码:

http://jsfiddle.net/Nirvanachain/2RsN9/

JS:

var defaults = {
 validate: false, 
 limit: 5, 
 name: "foo"   
};

$.each(defaults, function(key, value) {
  $('p').text(key + ' : ' + value);
});

HTML:

<p></p>

3 个答案:

答案 0 :(得分:4)

.text()会覆盖元素的内容,因此您最终会得到上一次迭代中发生的事情。请尝试.append()

http://jsfiddle.net/ZjwWn/

$.each(defaults, function(key, value) {
    $('p').append(key + ' : ' + value + '<br/>');
});

编辑 - 里卡多的评论是正确的。为获得最佳性能,请尽可能少地修改DOM。在这种情况下,您应该创建一个变量来附加文本,然后将其附加到DOM一次。

答案 1 :(得分:2)

.text()正在覆盖。

您只需要将值保存在变量中或附加它。

写下这个:

var defaults = {
    validate: false,
    limit: 5,
    name: "foo"
};
var txt = "";
$.each(defaults, function (key, value) {
    txt += key + ' : ' + value + " ";
});
$('p').text(txt);

Updated fiddle here.

答案 2 :(得分:1)

$.each(defaults, function(key, value) {
    $('p').text( $('p').text() + key + ' : ' + value);
});