Skip to content
← Back to rules

unicorn/prefer-dom-node-dataset Pedantic

🛠️ An auto-fix is available for this rule for some violations.

What it does ​

Use .dataset on DOM elements over getAttribute(…), .setAttribute(…), .removeAttribute(…) and .hasAttribute(…).

Why is this bad? ​

The dataset property is a map of strings that contains all the data-* attributes from the element. It is a convenient way to access all of them at once.

Examples ​

Examples of incorrect code for this rule:

javascript
element.setAttribute("data-unicorn", "🦄");

Examples of correct code for this rule:

javascript
element.dataset.unicorn = "🦄";

How to use ​

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "unicorn/prefer-dom-node-dataset": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "unicorn/prefer-dom-node-dataset": "error",
  },
});
bash
oxlint --deny unicorn/prefer-dom-node-dataset

Version ​

This rule was added in v0.0.18.

References ​