happy-dom
Version:
Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
38 lines (35 loc) • 1.08 kB
text/typescript
import Element from '../element/Element.js';
import NodeTypeEnum from '../node/NodeTypeEnum.js';
import INonDocumentTypeChildNode from './INonDocumentTypeChildNode.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
* Non Document Child node utility.
*/
export default class NonDocumentChildNodeUtility {
/**
* Previous element sibling.
*
* @param childNode Child node.
* @returns Element.
*/
public static previousElementSibling(childNode: INonDocumentTypeChildNode): Element {
let sibling = childNode.previousSibling;
while (sibling && sibling[PropertySymbol.nodeType] !== NodeTypeEnum.elementNode) {
sibling = sibling.previousSibling;
}
return <Element>sibling;
}
/**
* Next element sibling.
*
* @param childNode Child node.
* @returns Element.
*/
public static nextElementSibling(childNode: INonDocumentTypeChildNode): Element {
let sibling = childNode.nextSibling;
while (sibling && sibling[PropertySymbol.nodeType] !== NodeTypeEnum.elementNode) {
sibling = sibling.nextSibling;
}
return <Element>sibling;
}
}