如何将DOM转储到变量中并将其与文档分离(jQuery)
我需要这样做:如何将DOM转储到变量中并将其与文档分离(jQuery),jquery,Jquery,我需要这样做: var tempDoc; $(tempDoc).load('<html>' + $(document).find('html').html() + '</html>'); 但是,当我这样做时,背景色的删除也会影响$(文档)。 有没有办法将$(文档)转储到临时变量中并更改其中的元素而不影响$(文档)本身 请让我知道这是否有意义。使用documentFragment将HTML转储到,然后在不影响主文档的情况下更新属性,如下所示 var fragment =
var tempDoc;
$(tempDoc).load('<html>' + $(document).find('html').html() + '</html>');
但是,当我这样做时,背景色的删除也会影响$(文档)。
有没有办法将$(文档)转储到临时变量中并更改其中的元素而不影响$(文档)本身
请让我知道这是否有意义。使用documentFragment将HTML转储到,然后在不影响主文档的情况下更新属性,如下所示
var fragment = document.createDocumentFragment();
fragment.append($(document).html());
$('body', fragment).css('background-color', '');
我想我一点也不明白,但有什么理由你不能这么做:
var tempDoc = $('html').clone();
$('body', tempDoc).css('background-color', 'green');
只需使用。
正是为了这个
但它也会有同样的行为,因为不知何故(我不明白为什么)你操纵着同一个身体对象
DocumentFragment是一个很好的解决方案。另一种方法是复制你的身体,并对其进行操作
然后,您可以使用修改后的副本替换原始副本
var tempBody=$('body').clone(true);
css('background-color','red');
$('body')。替换为(tempBody);
这对我来说没什么意义。你要做什么?是的,我不知道你需要实现什么,也许可以使用不同的方法,我需要将整个HTML发布到PDF生成器。所以这有点像我网站上的“打印成PDF”功能。它的工作方式是您获取整个HTML并将其发布到HTML到PDF生成器应用程序。但在这之前,我需要动态修改HTML(比如隐藏一些元素)。当我这样做时,它还会隐藏页面上的元素。这就是问题所在。
var tempDoc = $('html').clone();
$('body', tempDoc).css('background-color', 'green');