目标

如果你希望将响应加载到发出请求的元素以外的其他元素中,则可以使用 hx-target 属性,该属性采用 CSS 选择器。回顾我们的 Live Search 示例:

<input type="text" name="q"
    hx-get="/trigger_delay"
    hx-trigger="keyup delay:500ms changed"
    hx-target="#search-results"
    placeholder="Search..."
>
<div id="search-results"></div>

你可以看到,搜索结果将被加载到中 div#search-results ,而不是 input 标签中。

扩展 CSS 选择器

hx-target 和大多数采用 CSS 选择器的属性都支持“扩展”CSS 语法:

  • 你可以使用this关键字,它表示属性所在的元素 hx-target 是目标
  • 最接近的 <CSS selector>语法将找到 与给定的 CSS 选择器匹配的最近的父元素或其自身。(例如:最近的 tr 将定位到离元素最近的表格行)
  • 该next <CSS selector>语法将在 DOM 中找到与给定 CSS 选择器匹配的下一个元素。
  • 该previous <CSS selector>语法将在 DOM 中查找给定 CSS 选择器的前一个元素。 find <CSS selector>它将找到与给定 CSS 选择器匹配的第一个子元素。(例如:find tr 将定位到第一个子行元素)

此外,CSS 选择器可以包装在 < 和 /> 字符中,以模拟超媒体文本的查询文字语法。

像这样的相对目标对于创建灵活的用户界面很有用,而无需在 DOM 中添加大量id属性。