123456789101112131415161718192021222324 |
- import { getRootNode } from '../../commons/dom';
- import { escapeSelector } from '../../core/utils';
- function duplicateIdEvaluate(node) {
- const id = node.getAttribute('id').trim();
- // Since empty ID's are not meaningful and are ignored by Edge, we'll
- // let those pass.
- if (!id) {
- return true;
- }
- const root = getRootNode(node);
- const matchingNodes = Array.from(
- root.querySelectorAll(`[id="${escapeSelector(id)}"]`)
- ).filter(foundNode => foundNode !== node);
- if (matchingNodes.length) {
- this.relatedNodes(matchingNodes);
- }
- this.data(id);
- return matchingNodes.length === 0;
- }
- export default duplicateIdEvaluate;
|