我正在尝试使用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>
答案 0 :(得分:4)
.text()
会覆盖元素的内容,因此您最终会得到上一次迭代中发生的事情。请尝试.append()
:
$.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);
答案 2 :(得分:1)
$.each(defaults, function(key, value) {
$('p').text( $('p').text() + key + ' : ' + value);
});