HTMX Guide

Core Attributes

AttributeDescription
hx-getIssue GET request
hx-postIssue POST request
hx-put / hx-patch / hx-deleteOther HTTP methods
hx-triggerWhat triggers the request (default: click)
hx-targetCSS selector for where to put response
hx-swapHow to insert: innerHTML, outerHTML, beforeend...
hx-includeInclude values from other elements
hx-push-urlPush URL to browser history
hx-boostAuto-ajax all links/forms
hx-indicatorElement to show while loading

Examples

<!-- Click to load --> <button hx-get="/api/users" hx-target="#list" hx-swap="innerHTML"> Load Users </button> <div id="list"></div> <!-- Form submit --> <form hx-post="/api/users" hx-target="#list" hx-swap="beforeend"> <input name="name" type="text"> <button type="submit">Add User</button> </form> <!-- Polling every 2s --> <div hx-get="/api/status" hx-trigger="every 2s">...</div> <!-- Delete with confirmation --> <button hx-delete="/api/users/1" hx-confirm="Delete this user?" hx-target="#user-1" hx-swap="outerHTML">Delete</button> <!-- Infinite scroll --> <tr hx-get="/api/users?page=2" hx-trigger="revealed" hx-swap="afterend"> Loading... </tr>

hx-swap Values

ValueEffect
innerHTMLReplace inner HTML (default)
outerHTMLReplace entire element
beforebeginBefore the element
afterbeginFirst child
beforeendLast child
afterendAfter element
deleteDelete the element
noneNo DOM change