2011-05-27 31 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