2015-12-31 118 views
0

我发现一个JQuery对象包含一个指向DOM对象的指针,并且Jquery对象的上下文会随着被修改的HTML而改变。但是,我想记录日志,并且我不希望历史记录中的Jquery对象发生更改,我应该怎么做?如何让一个JQuery对象包含Dom对象的快照?

+0

我构造了另一个包含我需要的属性的对象,来解决这个问题,但是我仍然想知道是否有更好的方法来解决这个问题。 – greatji

回答

0

您可以使用jQuery的克隆功能: https://api.jquery.com/clone/

var original = $('selector'); 
var copy = original.clone(); 

现在,如果你改变原来的,副本将不会改变。

1

jQuery对象包含DOM对象引用的内部列表。这些只是参考页面中的实际DOM对象,而不是任何东西的副本。因此,如果页面内容在这些DOM对象中发生变化,那么jQuery对象仍将引用现在具有更新内容的相同DOM对象。

如果你想从DOM中保存一些内容,所以它不会改变,如果DOM改变了,那么你必须从DOM对象中复制那些内容到你创建的一些新的DOM对象中, Javascript变量。