使用jQuery中断页面包装正文内容

时间:2014-01-17 22:09:27

标签: jquery

我想将一个网站的内容包装在一个div中(我正在编写一个用户同意这种情况的插件)。我这样做是这样的:

jQuery("body").append(jQuery('<div id="site-content"></div>')); jQuery("body").children(':not(#site-content)').wrap(jQuery('#site-content'));

出于某种原因,它在这个网站上打破了:

http://coding.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/

为什么会这样,并且有办法解决这个问题吗?

修改

好的,$.wrap并不是我想要的,但即使您只是使用appendTo移动内容,它仍然无效。

示例:

jQuery("body").append(jQuery('<div id="site-content"></div>')); jQuery("body").children(':not(#site-content)').appendTo(jQuery('#site-content'))

这就是发生的事情(我打破网站的意思) enter image description here

这里没有jQuery的代码:

var contentWrapper, contentContainer, ps_header, node, domSkip = 0, disallowedTags = {
    "SCRIPT": null,
    "STYLE": null
};

//Create contentWrapper
(contentWrapper = document.createElement("div")).className = document.body.className + " content-wrapper";
(contentContainer = document.createElement("div")).className = "content-container";
contentWrapper.appendChild(contentContainer);

//Populate contentWrapper with the body, while removing it from the body
while (document.body.children.length > domSkip) {
    node = document.body.children[domSkip];

    if (node.nodeName in disallowedTags) {

        domSkip++;
        continue;
    }

    document.body.removeChild(node);
    contentContainer.appendChild(node);
}

//Now drop contentWrapper into the DOM
document.body.appendChild(contentWrapper);

1 个答案:

答案 0 :(得分:1)

使用wrapInner()

$('body').wrapInner('<div id="site-content"></div>');