extra-dom
Version:
Utilities for DOM
24 lines • 829 B
JavaScript
import { isElement } from './is-element.js';
import { assert } from '@blackglory/errors';
export function nextElementSibling(node, distance = 1) {
assert(Number.isInteger(distance), 'parameter distance must be an integer');
assert(distance >= 1, 'parameter distance must be greater than or equal to 1');
return _nextElementSibling(node, distance);
}
function _nextElementSibling(node, distance) {
const currentNode = node.nextSibling;
if (!currentNode)
return undefined;
if (isElement(currentNode)) {
if (distance === 1) {
return currentNode;
}
else {
return _nextElementSibling(currentNode, distance - 1);
}
}
else {
return _nextElementSibling(currentNode, distance);
}
}
//# sourceMappingURL=next-element-sibling.js.map