【发布时间】:2021-02-07 21:00:42
【问题描述】:
看来我遇到了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
【问题讨论】:
-
#parent没有后代div。querySelector。 developer.mozilla.org/en-US/docs/Web/API/Element/querySelector 解释了第一个选择器工作的原因。 "该示例演示了在应用选择器时考虑了整个文档的层次结构,因此在定位匹配项时仍会考虑指定 baseElement 之外的级别。- 请注意“div span”选择器如何仍然成功匹配 元素,即使 baseElement 的子节点不包括 div 元素(它仍然是指定选择器的一部分)。" -
p是 div 本身 ...
标签: javascript css dom selectors-api