将隐藏的div(包括它的内容)添加到DOM中

时间:2012-10-15 14:50:32

标签: jquery

我有一个隐藏的div,我想添加(追加)到DOM中的另一个位置。我所拥有的代码没有按预期工作;

$('[class*="time-span"]').on('click', function() {

    var modelPanel = $('.model-detail-panel');

    modelPanel.contents().wrap('<div class="model-detail-panel" id="model-detail">').insertAfter('.timeline');
    modelPanel.slideToggle('fast', function() {
        $('html,body').animate({
            scrollTop: $(this).offset().top
        }, 500);
    });
});

div'model-detail-panel'的内容被插入到正确的位置,但实际的周围div没有被插入。为什么这是我用过最合适的方法来实现这个目标?

提前致谢...

3 个答案:

答案 0 :(得分:1)

问题是wrap()方法返回被包装的元素,而不是新创建的包装元素。因此,您应该使用parent()

modelPanel.contents().wrap('<div class="model-detail-panel" id="model-detail">').parent().insertAfter('.timeline');

参考文献:

答案 1 :(得分:0)

为了与其他链接方法保持一致,wrap()返回调用它的jQuery对象,而不是包装元素。

您可以将parent()应用于结果,以便在insertAfter()操作中包含包装元素:

modelPanel.contents().wrap(
    '<div class="model-detail-panel" id="model-detail">'
).parent().insertAfter('.timeline');

答案 2 :(得分:0)

var wrapped = $('<div class="model-detail-panel" id="model-detail/">').insertAfter('.timeline')
wrapped.append(model.contents)