为了简单起见,我不知道为什么这不起作用。
我需要在文档的正文中附加一个div,然后再将相同div的副本附加但是隐藏,然后是另一个div,然后是另一个div的副本,但是隐藏了,等等... < / p>
$.each(myObj.items, function(i, item) {
// createItem simply finds an html fragment in the document,
// clones it and returns it
var $i = createItem(item);
// add a div first that clears floats - this is needed before every item
$('body').append('<div class="clear"/>');
// append a clone of the html fragment
$('body').append($i.clone());
// add another div that clears floats
$('body').append('<div class="clear"/>');
// append a clone of the html fragment but hide it
$('body').append($i.clone().addClass('hidden'));
});
我期待:
<body>
<div class="clear"/>
<div class="item">item</div>
<div class="clear"/>
<div class="item hidden">item</div>
<div class="clear"/>
<div class="item">item</div>
<div class="clear"/>
<div class="item hidden">item</div>
...
</body>
但是我得到了......
<body>
<div class="clear"/>
<div class="item">item</div>
<div class="clear"/>
<div class="item">item</div>
<div class="clear"/>
<div class="item hidden">item</div>
<div class="clear"/>
<div class="item">item</div>
<div class="clear"/>
<div class="item hidden">item</div>
...
</body>
为什么第一次跳过?
修改
我的源代码html是这样的:
<html>
<body>
<div class="template hidden">..</div>
</body>
</html>
我克隆模板div,将其返回到我的函数,添加一个div(class ='clear'),然后是返回div的一个克隆,然后是另一个div(class ='clear')然后另一个克隆返回格
我的列表中的项目不超过5个。
修改2
愚蠢的用户错误...代码工作正常。我没有意识到我的第一行是硬编码而不是自动生成的。
对不起家伙......(感到愚蠢)
答案 0 :(得分:1)
您是否正在克隆现有的一组div?即你的页面上已有一个,所以你的函数克隆并添加一个常规的然后将另一个克隆添加为隐藏。
答案 1 :(得分:0)
当我用三个项目调用时,代码对我有用(http://jsfiddle.net/alnitak/M5PQ8/)。
你确定你没有把额外的div放在体内吗?您myObj.items
中有多少项?