HTMX
Attributes
- hx-[delete|get|patch|post|put]- AJAX method to use
- hx-swap- 
- innerHTML- Default, replace hx-target inner html.
- outerHTML- Replace the hx-target itself
- beforebegin- Insert before hx-target
- afterbegin- Insert before hx-target first child
- beforeend- Insert after hx-target last child
- afterend- Insert response after hx-target
- delete- Deletes hx-target regardless of the response.
- none- No swap.
 
- hx-target: CSS selector for- hx-swapaction
- hx-trigger: comma-separated list of events triggering a request, often the default:- 
- On input,textarea,select:change
- On form:submit
- On all other elements: click
- Filters:
- in []after the event name
- Example: keyup[ctrlKey && key == 'l']to catch CTRL-L
- Specify event source with from:<extended CSS selector>,
- defaults to current element
- Example: from:bodyto receive events from the whole body
- Complete spec: https://htmx.org/attributes/hx-trigger/
 
- hx-include:- 
- when hx-post-ing outside a form, specify which elements to include, as if they had been in a form along with the posting button
- supports matching on multiple comma-separated selectors
 
- hx-vals: value as a JSON string or JS dynamic value- 
- example: hx-vals='{"state":"MT"}'
- example: hx-vals='js:{"state":getCurrentState()}'
 
Extended CSS selectors
- support multiple comma-separated selectors, but...
- hx-target: return first matching element from first selector (?)
- hx-trigger from:and- hx-include: return first matching child
 
- relative selectors:
- closest:closest parent matching selector
- (previous|next):: previous or next element (not necessarily sibling) matching selector
- find:next child matching selector
- this:the current element