据我理解,使用 element.querySelector()
时,查询应从特定元素开始。
然而,当我运行以下代码时,它仍会选择特定元素中的第一个 DIV
标签。
const rootDiv = document.getElementById('test');
console.log(rootDiv.querySelector('div').innerHTML);
console.log(rootDiv.querySelector('div > div').innerHTML);
console.log(rootDiv.querySelector('div > div > div').innerHTML);
console.log(rootDiv.querySelector('div > div > div > div').innerHTML);
console.log(rootDiv.querySelector('div > div > div > div > div').innerHTML);
<div>
<div>
<div id="test">
<div>
<div>
This is content
</div>
</div>
</div>
</div>
</div>
正如你所看到的,前几个结果是相同的。这是一个bug吗?还是它会从文档开头查询?
:scope
并非所有主流浏览器都支持。无论如何,感谢解释,这应该是答案。谢谢。 - Joey Chong:scope
在 IE 和 Edge 中不起作用,我认为指出这一点很重要。 - Christian Vincenzo Traina