javascript - querySelectorAll 不在父级中的元素 display: none
问题描述
我正在尝试使用display: none获取不在父母中的所有(特定)元素。
目前,我正在使用以下内容:
const displayNoneElements = Array.from(
document.querySelectorAll(
'*not:[style*="display:none;"], [style*="display: none"], [style*="display: none;"], [style*="display:none"]'
)
);
const hiddenIssues = displayNoneElements.flatMap((element) =>
Array.from(element.querySelectorAll(SPECIFIC_TAG))
);
// Filters the issues which are in parents with display none
issues = Array.from(document.getElementsByTagName(SPECIFIC_TAG)).filter((issue) => {
for (let hiddenIssue of hiddenIssues) {
if (hiddenIssue.isSameNode(issue)) {
return false;
}
}
return true;
});
上面的代码正在完成这项工作,但我确信只有一些适当的选择器会有更优雅的解决方案。
提前致谢。
解决方案
推荐阅读
- excel - VBA - 在命名范围内使用 for 循环添加 dd/mm/yyyy 以增加 hh/mm 单元格值
- android - 使用字符串定义按钮
- linux - 作为汇编器 ARM Raspberry PI 3 与 C 库链接?
- php - 无法在 pimcore 管理区域查看课程
- java - Android Google Maps - 标记颜色编码仅适用于最后的 Firestore 结果
- eclipse - Eclipse 忘记“启动前保存所需的脏编辑器”设置
- r - Bigram Tokenization 和 Unigram Tokenizer
- sql - BigQuery标准SQL中基于其他列的列填空
- python - 带有 wget 和外部 api 的 Python 脚本
- html - 如何防止 div 中断到下一行