Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
Reads N attributes from each element matching a selector in a single querySelectorAll pass, emits one stringArray output per attribute. Replaces N domStringArrayRead nodes that each re-query the same selector for one attribute (common in per-card metadata pipelines: title / camera / stock / location / year / type / overview, etc.). Output port names are author-chosen; the attribute strings can be data-attrs, HTML attrs, or `textContent` for the element's text. Static read at bind time; document-order matches.
Inputs
| Port | Type | Description |
|---|---|---|
| - | - | No ports declared. |
Outputs
| Port | Type | Description |
|---|---|---|
| - | - | No ports declared. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
selector | elementSelector | "" | CSS Selector |
attributes | attrMap | {"title":"data-title"} | Map of output-port-name → DOM attribute name. Each key becomes a stringArray output port that emits one entry per matched element. Special value "textContent" reads the element's text content instead of an attribute. Author-chosen port names (`title`, `year`, `camera`, …) decouple output identity from raw attribute name. |
Use cases
- Carousel / deck cards with N distinct metadata fields per card — wire each output stringArray to its own stringArrayPick (driven by the active-slot index) then to a domStringWrite for the drawer / inspector panel.
- Drop-in collapse for chains of N domStringArrayRead nodes with identical selector but different attribute names — same results, one DOM walk.
Related nodes
Envelope
Use multiAttrRead as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-boundary/