Skip to content

Latest commit

Β 

History

History
105 lines (76 loc) Β· 3.01 KB

File metadata and controls

105 lines (76 loc) Β· 3.01 KB

prefer-modern-dom-apis

πŸ“ 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:

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 DOMString and DOM node objects can be manipulated.

Examples

// ❌
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);