Javascript直接访问dom元素并使用变量
你为什么这么做Javascript直接访问dom元素并使用变量,javascript,variables,dom,Javascript,Variables,Dom,你为什么这么做 var consoleElem = document.getElementById("debug"); consoleElem.appendChild(msgElement) 一模一样 document.getElementById('debug').appendChild(msgElement); 在我看来,DOM元素(debug)是它自己的变量,然后将它复制到另一个变量意味着我有两个debug元素的副本。。。为什么我对新副本(var consoleElem)所做的任何更改
var consoleElem = document.getElementById("debug");
consoleElem.appendChild(msgElement)
一模一样
document.getElementById('debug').appendChild(msgElement);
在我看来,DOM元素(debug)是它自己的变量,然后将它复制到另一个变量意味着我有两个debug元素的副本。。。为什么我对新副本(var consoleElem)所做的任何更改都要对原始DOM元素进行更改?控制台元素中的内容不是DOM元素本身,而是对它的引用。。因此,通过引用所做的任何更改实际上都应用于DOM元素本身
如果要修改元素而不实际更改原始元素本身,则应克隆该元素。。jQuery提供了克隆功能。调用
文档。getElementById
返回对DOM元素的引用。所有这一切都结束了
var consoleElem = document.getElementById("debug");
是否将该引用存储在变量中;它不会创造任何东西。可以有十几个变量引用同一个元素,但它仍然只是一个元素
如果要创建元素,请使用
document.createElement
。如果要复制元素,请使用newElement=oldElement.cloneNode()
它不会复制它。它只创建对元素的引用。我相信,要进行复制,必须调用cloneNode()。