使用MooTools的,我在缓存变量的一些DOM元素,当DOM准备好,就像这样:失去参考的DOM元素后,我克隆它们
var mc = $('main-content'),
bg = $('bg'),
arrows = $$('arrows');
两个bg
和arrows
位于mc
DOM中元件。我想克隆mc
节点,就可以执行某些操作,然后将克隆到DOM:
function updateDOM (parent) {
var parentID = parent.id,
oldNode = document.getElementById(parentID),
clone = oldNode.cloneNode(true);
// work with clone
oldNode.parentNode.replaceChild(clone, oldNode);
}
当我运行updateDOM(mc)
,我发现任何其他后续功能将改变mc
,bg
,或arrows
不工作。当我执行console.log()元素时,它们显示出来,但它们不反映自从初始化以来所做的任何更改。
考虑到我克隆了元素,我觉得mc
不再引用div#main-content
。 updateDOM()
是一个可以被任何元素使用的函数。我是否真的需要硬编码一种方法来重新实例化每个我缓存的变量,或者是否存在一种更动态的方法?
你的缓存代码看起来不正确......你的意思是把'#'放在选择器前面?或者这不是jQuery? – Jacob 2011-05-17 00:02:11
@Jacob:不;它看起来像原型('$$') – SLaks 2011-05-17 00:05:40
MooTools是准确的,我已经添加到该问题。对不起,有任何困惑。 – 2011-05-17 00:21:36