π Prefer .before() over .insertBefore(), .replaceWith() over .replaceChild(), prefer one of .before(), .after(), .append() or .prepend() over insertAdjacentText() and insertAdjacentElement().
πΌ This rule is enabled in the following configs: β
recommended, βοΈ unopinionated.
π§ This rule is automatically fixable by the --fix CLI option.
Enforces the use of:
- childNode.replaceWith(newNode) over parentNode.replaceChild(newNode, oldNode)
- referenceNode.before(newNode) over parentNode.insertBefore(newNode, referenceNode)
- referenceNode.before('text') over referenceNode.insertAdjacentText('beforebegin', 'text')
- referenceNode.before(newNode) over referenceNode.insertAdjacentElement('beforebegin', newNode)
There are some advantages of using the newer DOM APIs, like:
- Traversing to the parent node is not necessary.
- Appending multiple nodes at once.
- Both
DOMStringand DOM node objects can be manipulated.
// β
parentNode.replaceChild(newNode, oldNode);
// β
oldNode.replaceWith(newNode);// β
parentNode.insertBefore(newNode, oldNode);
// β
oldNode.before(newNode);// β
referenceNode.insertAdjacentText('beforebegin', 'text');
// β
referenceNode.before('text');// β
referenceNode.insertAdjacentText('afterbegin', 'text');
// β
referenceNode.prepend('text');// β
referenceNode.insertAdjacentText('beforeend', 'text');
// β
referenceNode.append('text');// β
referenceNode.insertAdjacentText('afterend', 'text');
// β
referenceNode.after('text');// β
referenceNode.insertAdjacentElement('beforebegin', newNode);
// β
referenceNode.before(newNode);// β
referenceNode.insertAdjacentElement('afterbegin', newNode);
// β
referenceNode.prepend(newNode);// β
referenceNode.insertAdjacentElement('beforeend', newNode);
// β
referenceNode.append(newNode);// β
referenceNode.insertAdjacentElement('afterend', newNode);
// β
referenceNode.after(newNode);