javascript - 在纯 JavaScript 中选择没有任何数据属性的元素
问题描述
我有一个列表,我想选择没有任何数据属性的第一个列表元素“li”
<ul>
<li data-row="down"><a class="scroll" href="#home">home</a></li>
<li data-space="down"><a class="scroll" href="#home">home</a></li>
<li data-direction="down"><a class="scroll" href="#about">about</a></li>
<li><a class="scroll" href="#team">team</a></li>
<li><a class="scroll" href="#service">service</a></li>
<li><a class="scroll" href="#portfolio">portfolio</a></li>
<li data-direction="down"><a class="scroll" href="#blog">blog</a></li>
</ul>
我知道如何取消选择特定的数据属性
document.querySelector('li:not([data-direction])');
但我需要更通用的东西
document.querySelector('li:not([data-*])');
这不起作用
解决方案
const getAllElements = selector => Array.from(document.querySelectorAll(selector)
const isDataAttribute = attr => attr.startsWith('data-')
const hasDataAttribute = el =>
Array.from(el.attributes)
.every(isDataAttribute)
getAllElements('li')
.filter(hasDataAttribute)
推荐阅读
- c++ - 在一个文件中定义多个类时,我发现低类中的函数无法访问我的主函数
- excel - VBA - 复制粘贴到另一个工作簿
- python - Python 3.X 中数据库中字符串值的尾随零
- html - 将底部的页脚与可变内容高度对齐
- python - 向 pandas 列中的字符串添加零取决于长度
- angular - Angular + Service Worker:如何将 `apiUrl` 从`environment.ts` 传递给`sw-sync.js`?
- javascript - 如何从 CSV json 对象中删除一个值?
- java - 使用 web.xml 在 Tomcat 8 上设置自定义过滤器
- python-3.x - 将输入文件修改为所需的输出文件
- javascript - 使用 jquery 倒计时