我有一个隐藏的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没有被插入。为什么这是我用过最合适的方法来实现这个目标?
提前致谢...
答案 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)