jQuery追加订单

Ala*_*ock 5 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
        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'));

    });
Run Code Online (Sandbox Code Playgroud)

我期待:

    <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>
Run Code Online (Sandbox Code Playgroud)

但我得到..

    <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>
Run Code Online (Sandbox Code Playgroud)

为什么第一个跳过?

编辑

我的源代码html是这样的:

    <html>
        <body>
            <div class="template hidden">..</div>
        </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

我克隆模板div,将其返回到我的函数,添加一个div(class ='clear'),然后是返回div的一个克隆,然后另一个div(class ='clear')然后另一个克隆返回的div

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

编辑2

愚蠢的用户错误...代码工作正常.我没有意识到我的第一行是硬编码而不是自动生成的.

对不起伙计......(感到愚蠢)

Bre*_*t D 1

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