По какой-то причине Element.prototype.matches возвращает false для совершенно корректного селектора CSS (:hover
):
let n = /* an HTMLAnchorElement whose state is forced to :hover */;
console.log(n.matches(':hover')); // false
console.log(n.matches('a:hover')); // true
console.log(n.matches('*:hover')); // false
- Я запустил этот код в консоли инструментов dev, после нахождения узла DOM вынуждаете его состояние: парить с помощью панели «Элементы», а затем устанавливая
n
в $0
. n
может быть любым HTML узлом dom на странице - это не ограничивается элементами привязки.
Более того, использование document.querySelector
демонстрирует то же поведение - но только в моей локальной тестовой среде. Например, https://google.com/ возвращает true для всех этих тестов.