2011-05-27 41 views
0

我最近编写了一个脚本,其中我需要一个元素在点击时移动到顶部。我使用,并已使用多年,在onclick功能如下代码:删除并重新插入DOM元素onclick

this.parentNode.appendChild(this.parentNode.removeChild(this)); 

脚本不工作,所以我的代码混乱四周,试图东西我从来没有做过努力解决它。我认为这个问题可能在于这一行代码。事实上,事实证明它与它无关,但是当我在修补时,我注意到下面的代码似乎执行相同的功能。

this.parentNode.appendChild(this); 

据我所知,没有区别。前者对我感觉“更好”,但我无法真正说出原因。有没有实际的区别?如果不是,我将开始使用后者并保存十八个字符:-)

回答

1

this不是 this的子女。
您需要从父节点中删除该子项。

然而,appendChildimplicitly remove the node from any existing parent(元素不能有多个父):

如果节点已经存在,它是从当前父节点删除,然后添加到新的父节点。

+0

对不起,当然你是对的。我发布时忽略了“parentNode”。我编辑了这个问题。 – 2011-05-27 02:54:48

+0

谢谢你指点我的答案。我多年来一直是一个潜伏者,这是我第一次自己问一个问题。这真的是一个很棒的网站。我对它的回答速度也印象深刻。谢谢! – 2011-05-27 03:07:21