closest function
Returns the closest element in the hierarchy of lowerBound
up to an optional upperBound
(both inclusive)
that matches selector
, or null
if no matches are found.
Implementation
Element? closest(Element lowerBound, String selector, {Element? upperBound}) {
for (Element? element = lowerBound; element != null; element = element.parent) {
if (element.matches(selector)) return element;
if (upperBound != null && upperBound == element) break;
}
return null;
}