为什么即使querySelector('div')不匹配,querySelector('div span')也匹配?

安德烈·比恩科夫斯基

看来我遇到了一个令人惊讶的querySelectorAPI怪癖有人可以向我解释为什么我得到这个结果吗?

const p = document.getElementById('parent')

// This line finds the span element
console.log(p.querySelector('div span'))

// Even though this line finds nothing
console.log(p.querySelector('div'))
<div id=parent>
  <span>test</span>
</div>

我的浏览器:Mozilla Firefox 78.4.0esr

安德烈·比恩科夫斯基
console.log(p.querySelector('div'))

一无所获,因为

Element接口的querySelector()方法返回第一个元素,该元素是与指定选择器组匹配的在其上被调用的元素后代- MDN(重点煤矿)

console.log(p.querySelector('div span'))

之所以匹配

整个层次匹配时,包括那些以外元素集合包括baseElement及其后代的元素被认为是; 换句话说,选择器首先应用于整个文档,而不是应用于baseElement,以生成潜在元素的初始列表。然后检查结果元素是否为baseElement的后代。其余元素的第一个匹配项由querySelector()方法返回。- MDN(重点煤矿):

感谢您对Evolutionxbox和G-Cyrillus的评论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改div的宽度以匹配span标签的宽度

来自分类Dev

<a>标记与<div>不匹配

来自分类Dev

a:悬停与div高度不匹配

来自分类Dev

div高度匹配sub div

来自分类Dev

div表的列宽与行不匹配

来自分类Dev

div高度匹配细分

来自分类Dev

查找href并匹配div

来自分类Dev

使内部div匹配外部div的高度

来自分类Dev

使内部div匹配外部div的高度

来自分类Dev

CSS - Div 始终匹配容器宽度,即使容器水平滚动

来自分类Dev

div ID与select选项匹配

来自分类Dev

使div居中以匹配徽标/线索

来自分类Dev

在点击时匹配Div排名

来自分类Dev

CSS:为什么这两个div(或span)元素彼此不浮动

来自分类Dev

仅匹配“ <span>某物</ span> endofline”,而不匹配“ <span>某物</ span> </ span>”

来自分类Dev

如果属性与过滤器不匹配,则隐藏div元素

来自分类Dev

div和textarea之间的文本宽度不匹配

来自分类Dev

两个分开的div,宽度100%不匹配

来自分类Dev

外部div宽度与内部段落宽度不匹配

来自分类Dev

图片大小和div大小不匹配

来自分类Dev

li和父级div大小不匹配

来自分类Dev

响应式水平 div 高度与嵌入的 youtube 不匹配

来自分类Dev

为什么不匹配?

来自分类Dev

为什么添加图像会更改父<div>或<span>的位置?

来自分类Dev

为什么<span>标记与<div>标记的行为不同?

来自分类Dev

为什么添加图像会更改父<div>或<span>的位置?

来自分类Dev

获取div的span标签

来自分类Dev

特定的div ID显示具有匹配ID的隐藏div

来自分类Dev

如果当前星期数与div的ID匹配,则显示div