2018-07-08 05:42:58 +02:00
|
|
|
/**
|
|
|
|
* For a given element, this function removes it AND its children
|
|
|
|
* @param elem The element to remove.
|
|
|
|
*/
|
|
|
|
export function removeElement(elem: Element | null) {
|
|
|
|
if (elem === null) {
|
|
|
|
// tslint:disable-next-line:no-console
|
|
|
|
console.debug("The element passed into 'removeElement' was null.");
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (!(elem instanceof Element)) {
|
|
|
|
// tslint:disable-next-line:no-console
|
|
|
|
console.debug("The element passed into 'removeElement' was not an instance of an Element.");
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-07-08 07:11:34 +02:00
|
|
|
while (elem.firstChild !== null) {
|
2018-07-08 05:42:58 +02:00
|
|
|
elem.removeChild(elem.firstChild);
|
|
|
|
}
|
|
|
|
|
2018-07-08 07:11:34 +02:00
|
|
|
if (elem.parentNode !== null) {
|
2018-07-08 05:42:58 +02:00
|
|
|
elem.parentNode.removeChild(elem);
|
|
|
|
}
|
|
|
|
}
|