我只是注意到我无法做到
var d1 = document.createElement('div');
var d2 = document.createElement('div');
var p = document.createElement('p');
d1.appendChild(p); // d1 has p now
d2.appendChild(p); // d2 has p now
// but where is p in d1 ?
有人会说它的逻辑,但是,当我第一次注意到我认为它是多么冷酷时。
为什么不可能?
答案 0 :(得分:8)
DOM是树结构。
附加元素时,更改其父元素。
浏览器中的节点不仅仅是P中的文本(事实上该字符串可以共享)。它还具有位置,维度,可见性,接收可能在子元素中触发的事件,将事件传播到其父元素,等等。这里的一切都取决于树中的位置。就像许多CSS选择器一样。想象它在两个地方是相同的元素并没有多大意义,最好将它看作两个节点,可能有一些相同的内容。
如果您希望在两个地方拥有相同的内容,则可以to clone it。
答案 1 :(得分:0)
jQuery's appendTo()
method插入“匹配元素集中的每个元素到目标末尾”。试试这个:
p.appendTo(".div-class1, .div-class2")