jQueryeach不会对对象中的每个元素执行html
代码如下:
var object = [
{'item1': 'value1a', 'item2':'value2a', 'item3':'value3a'},
{'item1': 'value1b', 'item2':'value2b', 'item3':'value3b'},
];
$.each(object, function(key,value) {
$('.my-div').html('<li>'+ value.item1 + '</li>');
});
仅输出一个
。由于某种原因,跳过除最后一次迭代之外的所有迭代。
想法?
Here's the code:
var object = [
{'item1': 'value1a', 'item2':'value2a', 'item3':'value3a'},
{'item1': 'value1b', 'item2':'value2b', 'item3':'value3b'},
];
$.each(object, function(key,value) {
$('.my-div').html('<li>'+ value.item1 + '</li>');
});
This outputs only one <li>value1b</li>
. For some reason skips over all except the last iteration.
Thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它会覆盖您的所有 HTML,而不是附加它。
更改
为
工作演示:http://jsfiddle.net/AlienWebguy/hpLa6/1/
It's overwriting all your HTML instead of appending it.
Change
to
Working demo: http://jsfiddle.net/AlienWebguy/hpLa6/1/
之前的编辑将被覆盖。它相当于这样做:(
显然是一种不同的编程语言)
上面的答案将是“9”而不是预期的答案。
您需要附加每个 html 调用。
编辑:
天哪,人们打败了我......:-(
The previous edits are being overwritten. Its the equivalent of doing this:
(obviously a different programming language)
The above answer would be "9" instead of the expected answer.
You need to append each html call.
Edit:
Holy crap people beat me... :-(
您在每次迭代时都会覆盖它。您需要这样做
$('.my-div').html($('.my-div').html()+'
;');
编辑以修复错误
You are overwriting it on each iteration. You need to do like
$('.my-div').html($('.my-div').html()+'<li>'+ value.item1 + '</li>');
edited to fix bug
是否有必要为此使用 jQuery,为什么不只使用一个简单的:
提示:我会避免在任何语言中使用 id
object
Is it necessary to use jQuery for this, why not just use a simple:
Tip: I would avoid using the id
object
in any language由于有些人因为效率低下而喜欢投反对票...这会更有效,因为它只选择节点一次
Since some people like to downvote because of inefficiency... this would be more efficient, as it selects the node only once