Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在纯JavaScript中选择不带任何数据属性的元素_Javascript - Fatal编程技术网

在纯JavaScript中选择不带任何数据属性的元素

在纯JavaScript中选择不带任何数据属性的元素,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-dir

我有一个列表,我想选择没有任何数据属性的第一个列表元素“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-*])');

这不起作用

您需要的不仅仅是选择器,例如筛选。但明智、高效和干净的解决方案是向您想要选择的元素添加一个类。为什么不给第一个li标记一个唯一的ID
ID=“first”
,然后让选择器成为
document。querySelector(“#first”)
可能的重复我认为单独使用
querySelector
是不可能的。您检查过了吗?可能重复的不使用
!!…。过滤器(…)。长度
。使用
。每一个
。一些
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)
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)