在文档正文内容周围包裹div

问题描述 投票:8回答:4

我试图在DIV中动态包装文档的body标签的内容。到目前为止,我使用了以下代码:

document.body.innerHTML = '<div id="wrap">' + document.body.innerHTML + '</div>';

这是有效的,但有不必要的副作用,同一页面上的其他脚本停止工作(我假设因为更改innerHTML呈现任何对象引用,他们可能已经无用)。

使用纯JavaScript或Prototype框架,实现此目的并保持参考完整性的最佳/最有效方法是什么?

javascript html prototypejs
4个回答
17
投票

你会做的事情如下:

var div = document.createElement("div");
div.id = "wrap";

// Move the body's children into this wrapper
while (document.body.firstChild)
{
    div.appendChild(document.body.firstChild);
}

// Append the wrapper to the body
document.body.appendChild(div);

2
投票

你可以尝试一下吗? (另)

var newDiv = document.createElement('div')
newDiv.setAttribute('id','wrap');
var bodyChildren = document.body.childNodes;
for(var i=0;i<bodyChildren.length;i++){
  newDiv.append(bodyChildren[i]);
}
document.body.appendChild(newDiv);

不确定原型,但在jQuery中你可以做到这一点

$('body').wrap('<div id="wrap"></div>');

0
投票

也许是这样的:

var body = document.body;
var div = document.createElement('div');
div.className = 'wrapper';

div.innerHTML = body.innerHTML;
body.innerHTML = div.outerHTML;

-1
投票
$('#iframe').contents().find('body').wrap('<div class=body></div>');
$('#iframe').contents().find('body').replaceWith(function() {return this.innerHTML});
$('#iframe').contents().find('.body').wrap('<body></body>');

这行将在body元素标记内包装div。首先,它将包装body标签,然后删除body标签并将其所有内容附加到body div,第3行将使用body标签再次包装此div。

© www.soinside.com 2019 - 2024. All rights reserved.