Element.prototype.matches не соответствует голому: псевдокласс - PullRequest
0 голосов
/ 31 января 2020

По какой-то причине 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 для всех этих тестов.

1 Ответ

0 голосов
/ 31 января 2020

Это потому, что мне не хватало <!DOCTYPE html> вверху моей страницы. См. https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode для получения дополнительной информации.

...