src/dom/contains.js
/**
* @module contains
*/
/**
* Test whether an element contains another element in the DOM.
*
* @param {Element} container The element that may contain the other element.
* @param {Element} element The element that may be a descendant of the other element.
* @return {Boolean} Whether the `container` element contains the `element`.
* @example
* $.contains(parentElement, childElement); // true/false
*/
export const contains = (container, element) => {
if(!container || !element || container === element) {
return false;
} else if(container.contains) {
return container.contains(element);
} else if(container.compareDocumentPosition) {
return !(container.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_DISCONNECTED);
}
return false;
};