jQuery追加顺序

jQuery追加顺序,jquery,append,Jquery,Append,尽管如此简单,我还是不明白为什么这不起作用 我需要在文档正文中附加一个div,然后是同一个div的一个副本,但隐藏,然后是另一个div,然后是另一个相同div的副本,但隐藏,等等 $.each(myObj.items, function(i, item) { // createItem simply finds an html fragment in the document, // clones it and returns it va

尽管如此简单,我还是不明白为什么这不起作用

我需要在文档正文中附加一个div,然后是同一个div的一个副本,但隐藏,然后是另一个div,然后是另一个相同div的副本,但隐藏,等等

    $.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'));

    });
$。每个(myObj.items,函数(i,item){
//createItem只是在文档中查找html片段,
//克隆并返回它
var$i=createItem(项目);
//首先添加一个清除浮动的div-这在每个项目之前都是必需的
$('body')。追加('');
//附加html片段的克隆
$('body').append($i.clone());
//添加另一个清除浮动的div
$('body')。追加('');
//附加html片段的克隆,但将其隐藏
$('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'),然后是返回div的另一个克隆

我的列表中的项目不超过5项

编辑2

愚蠢的用户错误。。。代码运行良好。我没有意识到我的第一行代码是硬编码的,不是自动生成的


对不起,伙计们。。。(觉得自己很愚蠢)

您正在克隆一组现有的div吗?也就是说,您的页面上已经有一个克隆,因此您的函数会克隆并添加一个常规克隆,然后添加另一个隐藏的克隆。

代码适合我(http://jsfiddle.net/alnitak/M5PQ8/),当使用三项调用时


你确定你自己没有把多余的球放在身体里吗?您的
myObj中有多少项。items

能否提供一个(非)工作示例?这似乎是这样的:这是令人沮丧的部分。我不明白为什么它不起作用,而你已经确认它起作用了,但出于某种奇怪的原因(请原谅开发人员的咒语),它在我的机器上不起作用?我已经克隆了隐藏的div,然后删除隐藏的类并返回到我的函数。我把这个附加到文档上,但是因为我想在它的正下方附加一个副本,所以我再次克隆了它。好吧,你刚才回答了你自己!把它拿走,我真蠢。对不起大家。我刚刚看到一个是硬编码的,其他的都是生成的。我再次道歉。。。RTFM是否应该…@Alan-前几天我在推特上看到了一个很好的短语:“今天不能动脑筋。我有哑巴。”发生在我们所有人身上:)@Alan-很高兴你明白了!