Javascript 在本地不可变地存储jQuery对象以备以后使用

Javascript 在本地不可变地存储jQuery对象以备以后使用,javascript,jquery,Javascript,Jquery,我正在使用Pug在页面加载上创建一个包含嵌套元素的DIV。稍后,用户会过滤这些元素,但我需要.remove()它们,而不是使用.hide() (至少在当前版本的代码中,我需要这样做。) 我正试图隐藏container DIV以备以后使用,因此当我执行“清除那些过滤器”操作时,我可以使用.clone(),还原整个内容,从而取回元素I.remove()'d 这一切都是在客户端发生的,所以我将它放在窗口中。奇怪的是,我的过滤作用影响了我藏起来的东西!我尝试了.freeze(),创建了一个新对象,不管怎

我正在使用Pug在页面加载上创建一个包含嵌套元素的DIV。稍后,用户会过滤这些元素,但我需要
.remove()
它们,而不是使用
.hide()

(至少在当前版本的代码中,我需要这样做。)

我正试图隐藏container DIV以备以后使用,因此当我执行“清除那些过滤器”操作时,我可以使用
.clone()
,还原整个内容,从而取回元素I
.remove()
'd

这一切都是在客户端发生的,所以我将它放在
窗口中。奇怪的是,我的过滤作用影响了我藏起来的东西!我尝试了
.freeze()
,创建了一个新对象,不管怎样——它总是受到影响。我从visible DIV中筛选的行将从我认为是不可变副本的内容中删除

我需要用jQuery完成所有这些,使用
true
进行深度克隆。子div附带了我要还原的事件侦听器

因此,有两个问题:

  • 我应该把这个东西藏在哪个更合理的地方
  • 一开始是怎么修改的?!在我的代码中,我在创建后没有任何地方接触过它。我得到了整个“它是指针而不是副本”的东西,但是通过使用
    object.freeze(originalObject)
    创建一个新对象,我以为我已经解决了这个问题

  • 深感困惑。:/我对JS/jQuery相当陌生,所以如果我只是个傻瓜,请原谅我。

    如果您提供一些代码,我想您会得到一些更好的建议。特别是关于如何过滤数组,然后显示过滤结果。最终,如果您是从该数据(“模型”)驱动此操作,那么“还原”您隐藏的版本应该相对容易。好奇您为什么要
    .remove()
    还原您希望能够还原的内容?也许是一些示例代码来更好地理解您在做什么?我的代码太复杂了,无法尝试提取位-这可能是我的首要问题。我已经进行了重构,现在使用CSS类来隐藏行,就像我一直以来应该做的那样。什么是协议,我应该删除这个毫无意义的问题吗?