Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将DOM转储到变量中并将其与文档分离(jQuery)_Jquery - Fatal编程技术网

如何将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');