看来我遇到了一个令人惊讶的querySelector
API怪癖。有人可以向我解释为什么我得到这个结果吗?
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] 删除。
我来说两句