happy-dom-without-node
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.
34 lines • 1.04 kB
JavaScript
import NodeList from '../node/NodeList.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
* Utility for finding labels associated with a form element.
*/
export default class HTMLLabelElementUtility {
/**
* Returns label elements for a form element.
*
* @param element Element to get labels for.
* @returns Label elements.
*/
static getAssociatedLabelElements(element) {
const id = element.id;
let labels;
if (id) {
const rootNode = element.getRootNode();
labels = rootNode.querySelectorAll(`label[for="${id}"]`);
}
else {
labels = new NodeList();
}
let parent = element[PropertySymbol.parentNode];
while (parent) {
if (parent['tagName'] === 'LABEL') {
labels.push(parent);
break;
}
parent = parent[PropertySymbol.parentNode];
}
return labels;
}
}
//# sourceMappingURL=HTMLLabelElementUtility.js.map