我想将一个网站的内容包装在一个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'))
这就是发生的事情(我打破网站的意思)
这里没有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);