jQuery追加订单

时间:2011-05-19 14:58:50

标签: jquery append

为了简单起见,我不知道为什么这不起作用。

我需要在文档的正文中附加一个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

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

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

2 个答案:

答案 0 :(得分:1)

您是否正在克隆现有的一组div?即你的页面上已有一个,所以你的函数克隆并添加一个常规的然后将另一个克隆添加为隐藏。

答案 1 :(得分:0)

当我用三个项目调用时,代码对我有用(http://jsfiddle.net/alnitak/M5PQ8/)。

你确定你没有把额外的div放在体内吗?您myObj.items中有多少项?