javascript - 如何在删除节点之前检查节点是否有 childNode?
问题描述
我刚收到这个奇怪的错误:
我不知道那是怎么发生的。仅当是 的孩子时才
.contains()
应返回,但是如何返回 true 并且没有孩子?true
placeholder
overParent
placeholder
我需要的解决方案:
- 为什么以及如何发生此错误?
- 只有
placheholder
当它是overParent
.
观察:
我正在做这个反应。
解决方案
问题是,虽然.contains
告诉你那placeholder
是 的后代overParent
,但它可以是孙节点。如果是这种情况,您正试图从overParent
.
出于演示目的,检查实际的 DOM 是否如下所示:
- overParent
- <some node>
- placeholder
为避免此类错误,请转到要删除的节点的直接父节点并调用removeChild
它:
if (overParent.contains(placeholder)) {
placeholder.parentNode.removeChild(placeholder);
// rest of your code
}
推荐阅读
- react-native - 如何在反应原生导航中解决“无法获取配置,因为路线没有 routeName”问题?
- angular - 没有将“exportAs”设置为“ngx-places”的指令
- python - MatPlotLib 散点图重绘扩展 x 轴
- yii2 - Yii2 控制器扩展了另一个控制器
- android - 使用 Picasso 在 Kotlin 中获取 Target Null 错误消息
- sql-server - 从 SQL Server 读取带有 Hear 和 Node 值的 XML 数据
- .net - 是否可以在 .NetCore 应用程序中仅发布某些 appsettings.json
- netbeans - 如何使应用程序用户创建的数据在 NetBeans 中持久化?
- javascript - How to format JSON data using JavaScript
- python - 从 BQ 获取“无效的架构更新。无法添加字段”,并在配置中设置了 ALLOW_FIELD_ADDITION