Если что-то вызывает parents
с допустимым элементом, которого нет в DOM, это условие необходимо для предотвращения ошибки.
Рассмотрим:
const div = document.createElement("div");
div.innerHTML = "<span><span class='foo'></span></span>";
const span = div.querySelector(".foo");
// ...
const blah = parents(span, ".blah");
parentNode
достигнет null
, даже не будучи сначала === document
. Аналогично:
const div = document.getElementById(".something");
div.remove(); // Or on older browsers: div.parentNode.removeChild(div);
const blah = parents(div, ".blah");
Примечание: у вас есть метод closest
. Вы можете использовать это вместо хорошего полифилла, если вам нужно поддерживать устаревшие браузеры.