Javascript 是否从jquery中的多个父节点引用同一元素?

Javascript 是否从jquery中的多个父节点引用同一元素?,javascript,jquery,Javascript,Jquery,jquery的append方法似乎只能移动或克隆一个元素,但我想要的是将它插入到多个父节点中,这样对元素的任何更新都将立即“从不同的地方”反映出来。我是否必须使用原始DOM Manipulation来实现这一点,或者我是否忽略了一些API?好吧,经过一些研究和测试,我终于得出结论,这是不可能的(直接的)。首先,文档对象模型要求HTML节点维护对其父节点的引用。其次,修补节点的innerHTML属性等变通方法失败,因为它(至少在某些浏览器上)实现为某种不可变的“本机对象” 下面是一个例子: <

jquery的
append
方法似乎只能移动或克隆一个元素,但我想要的是将它插入到多个父节点中,这样对元素的任何更新都将立即“从不同的地方”反映出来。我是否必须使用原始DOM Manipulation来实现这一点,或者我是否忽略了一些API?

好吧,经过一些研究和测试,我终于得出结论,这是不可能的(直接的)。首先,文档对象模型要求HTML节点维护对其父节点的引用。其次,修补节点的innerHTML属性等变通方法失败,因为它(至少在某些浏览器上)实现为某种不可变的“本机对象”

下面是一个例子:

<!DOCTYPE html>
<html>
    <head>
        <script>
    function demonstrate()
    {
        function InnerHTMLReference(reference)
        {
            this.reference = reference
        }
        InnerHTMLReference.prototype.toString = function()
        {
            return this.reference.innerHTML
        }
        function node()
        {
            return document.createElement("div")
        }
        var
            root = node(),
            first = node(), 
            second = node(),
            echo = node();
        body.appendChild(root);
        root.appendChild(first);
        root.appendChild(second);
        echo.innerHTML = "Is there an echo in here?";
        first.innerHTML = new InnerHTMLReference(echo);
        second.innerHTML = new InnerHTMLReference(echo);
        echo.innerHTML = "Not a chance.";
        var
            constructor = second.innerHTML.constructor.name;
    /*
        Suprise! 
    */
        if(constructor != "InnerHTMLReference")
            alert("Sorry: " + constructor + " != InnerHTMLReference");
    }
        </script>
    </head>
    <body onload = "demonstrate()"/>
</html>

函数演示()
{
函数InnerHTMLReference(参考)
{
this.reference=reference
}
InnerHTMLReference.prototype.toString=函数()
{
返回this.reference.innerHTML
}
功能节点()
{
返回文档.createElement(“div”)
}
变量
根=节点(),
第一个=节点(),
第二个=节点(),
echo=node();
body.appendChild(根);
根。追加子对象(第一个);
根。子(第二);
echo.innerHTML=“这里有回声吗?”;
first.innerHTML=新的InnerHTMLReference(echo);
second.innerHTML=新的InnerHTMLReference(echo);
echo.innerHTML=“不可能。”;
变量
constructor=second.innerHTML.constructor.name;
/*
惊喜!
*/
if(构造函数!=“InnerHTMLReference”)
警报(“抱歉:“+constructor+”!=InnerHTMLReference”);
}
在我的平台上,这显示:

这里有回声吗

这里有回声吗

对不起:字符串!=内部HTMLReference


你是说双向装订?你能给我们一些代码和更多细节吗?例如,假设我有一个div,它向用户显示消息。我不想创建它的副本或将它移动到不同的“当前页面”div中,而是简单地将对它的引用插入到多个父节点中,这样当我切换到“当前页面”时,它就会显示“消息”元素处于当前的任何状态。因此,您希望多次克隆一个元素,并确保它们在发生“更新”时外观相同。它将如何更新?用什么?如果我们知道元素的状态将如何变化,那么使用vanilla js可能会非常简单。在我们了解更多信息之前,我将投票支持React+Redux,因为事情只是自动发生的。我们谈论的是单页应用程序还是简单的“单击链接,从服务器加载静态内容”?请提供一个适当详细的问题描述。当你开始提到切换“当前页面”时,这个问题可以有多种解释。Javascript不在完整的浏览器页面加载之间保持状态