[英]Iterate through array and append each value into list
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
var obj = { one:1, two:2, three:3, four:4, five:5 };
var list = $("div");
jQuery.each(obj, function(i, val) {
list.html( val);
});
我试图遍历这个数组并将每个值附加到列表项中,使其显示如下:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
我的问题是代码只附加了数组中的最后一项:5。
不知道我做错了什么。
使用元素的值来定位它应该放置的li
:
$.each( obj, function( i, v ) {
$("ul li").eq(v-1).html(v);
});
演示: http : //jsfiddle.net/3RAQC/
结果如下:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
使用 list.append(val) 而不是 list.html(val)
.append() 添加到 html 内容,而 .html 总是用参数替换整个 html 值。
你既没有<div>
也有<ul>
。 你没有数组而是一个对象(可以称为关联数组,好吧)。 并且您选择一个元素,并在每次迭代中(重新)设置其内容,以便仅显示最后一个值。 更好的:
var ul = $('ul').empty();
$.each(obj, function(prop, val) {
ul.append("<li>"+val+"</li>");
// or better:
$("<li>").text(val).appendTo(ul); // ?
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.