javascript - 简明扼要地删除一个 DOM 元素(如果存在)?
问题描述
我目前正在编写一个浏览器脚本(用于 Tampermonkey/Greasemonkey)(并在此过程中学习 JS!),我有很多这样的事件:
let btn = document.querySelector("#unwantedButton");
if (btn) {
btn.parentNode.removeChild(btn);
}
也就是说,我希望删除某个元素,如果它存在的话。
有什么方法可以更简洁优雅地写这个吗?这将在这个项目中为我节省很多行,最重要的是,教我一些 JS 最佳实践。:-)
感谢您帮助 JS 菜鸟!
解决方案
与其在几个地方重写代码,不如将它放在一个函数中(并使用remove()
:
function removeIfExists (selector) {
var x = document.querySelector(selector)
if (x) x.remove()
}
然后你可以到处调用它:
removeIfExists("#some-unwanted-element")
如果您有不想要的已知元素列表,也可以使用它:
var badElements = [ ".foo", "#bar", "#etc" ]
badElements.forEach(removeIfExists)
推荐阅读
- arrays - 如何使用对象数组索引堆叠元素?
- azure - 利用 Azure 资源管理 REST API
- r - 用户上传 csv 文件时渲染表
- wordpress - Wordpress 和 Woocommerce - 我可以将可重用块添加到默认为 HTML 编辑器而不是古腾堡编辑器的类别吗?
- arduino - Seeed Wio 终端对 GET 请求无响应
- mysql - 禁用严格模式后无法执行 SQL 文件事件
- windows - 记录文件创建者的最佳实践
- python - 获取 Microsoft Visual Studio 2019 以正确突出显示 Python 语法错误
- docker - Docker 桌面无法在 Windows 上启动
- javascript - 在 firebase 中验证电子邮件时遇到问题,applyActionCode 一直说我的代码无效