Проблема в том, что, хотя .contains
говорит вам, что placeholder
является потомком overParent
, это может быть внучатый узел.В этом случае вы пытаетесь удалить узел, который находится в другом узле, из overParent
.
. В демонстрационных целях проверьте, выглядит ли фактический DOM следующим образом:
- overParent
- <some node>
- placeholder
Чтобы избежать подобных ошибок, перейдите к прямому родителю узла, который вы хотите удалить, и вместо этого вызовите removeChild
:
if (overParent.contains(placeholder)) {
placeholder.parentNode.removeChild(placeholder);
// rest of your code
}