13 lines
289 B
JavaScript
13 lines
289 B
JavaScript
// @ts-check
|
|
|
|
/**
|
|
* @param {HTMLElement} element
|
|
* @returns {Generator<HTMLElement, void, unknown>}
|
|
*/
|
|
export default function* allChildrenOf(element) {
|
|
yield element;
|
|
for (const child of element.children ?? []) {
|
|
yield* allChildrenOf(/** @type {HTMLElement} */ (child));
|
|
}
|
|
}
|