javascript - onclick 删除并重新插入 DOM 元素

标签 javascript dom appendchild removechild

我最近编写了一个脚本,其中需要一个元素在单击时移动到顶部。我在 onclick 函数中使用了以下代码,并且已经使用多年了:

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

该脚本无法正常工作,因此我对代码进行了修改,尝试了以前从未做过的事情来修复它。我认为问题可能出在这行代码上。实际上,事实证明它与它无关,但是当我修补时,我注意到以下代码似乎执行相同的功能。

this.parentNode.appendChild(this);

据我所知,没有什么区别。前者对我来说感觉“更好”,但我不能真正说出原因。有实际区别吗?如果没有,我将开始使用后者并节省十八个字符:-)

最佳答案

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

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

If the node already exists it is removed from current parent node, then added to new parent node.

关于javascript - onclick 删除并重新插入 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147293/

相关文章:

javascript - 在某些事件上动态创建与之关联的 html 元素和对象

internet-explorer - Babel 不包括 append 方法?

javascript - 如何多次appendChild(element)。 (相同元素)

javascript - 为什么我的文章不会在点击时改变颜色?

python - XML 解析 - ElementTree vs SAX 和 DOM

javascript - 使用 ...spread,但 redux 仍然会发出有关状态突变的警告

表单提交后 jQuery.hide() 不工作

javascript - Jquery - 在同一行附加元素

javascript - 在对象内的对象内创建数组

javascript - 我可以禁用复选框但仍会触发其事件吗?