Контекстуальные querySelectors не эквивалентны?
Тестируя некий код споткнулся на ошибке Illegal invocation.
Собственно говоря чтобы выбрать какой-то элемент на странице мы можем воспользоваться DOM API.
Пишем:
document.querySelector("body")
Вроде все ок в консоли ок - выдает нам то что мы просим.
Однако такой код не работает:
let context = document.querySelector("body");
document.querySelector.call(context, "p");
Вызывает ту самую ошибку.
И да:
let context = document.querySelector("body");
document.querySelector == context.querySelector; /// false
Может кто-нибудь пояснить почему querySelectors не равны?
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Потому что методы querySelector определены отдельно для HTMLDocument и для HTMLElement после того, как их ветви наследования разошлись на Node.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement