Aar*_*ron 4 javascript search filtering alpine.js
我对 Alpine.js 相当陌生,希望为项目列表创建一个简单的搜索/过滤器输入。
\n我见过一些使用的示例<template>,但我对那种特定的技术不感兴趣。
项目列表已存在于页面上,因此它是基于“标签”数组隐藏和取消隐藏项目的简单目标。
\nx-ref(因此在<li>和上使用<ul>我在codepen上有一个简单的例子
\n我不确定将列表项绑定到 的最佳方法x-data,然后我假设使用 a.filter( $ref.startsWith(.this.search))来过滤项目。
\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f
\n任何帮助将不胜感激!
\n您不需要x-ref使用$el引用当前 DOM 元素的魔法属性:只需将其传递给一个方法,该方法将在该元素的属性包含搜索字符串时show_item($el)返回。truetextContent
<script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
<div class="wrapper" x-data="{
search: '',
show_item(el) {
return this.search === '' || el.textContent.includes(this.search)
}
}">
<input class="search-input" type="search" placeholder="Filter: A B C D" x-model="search">
<div>
<p>Search Input: <span x-text="search"></span></p>
</div>
<p><b>Menu:</b></p>
<ul class="menu">
<li x-show="show_item($el)">Item A</li>
<li x-show="show_item($el)">Item B</li>
<li x-show="show_item($el)">
Dropdown C
<ul>
<li x-show="show_item($el)">Item C:A</li>
<li x-show="show_item($el)">Item C:B</li>
</ul>
</li>
<li x-show="show_item($el)">Item D</li>
<li x-show="show_item($el)">Item E</li>
<li x-show="show_item($el)">Item F</li>
<li x-show="show_item($el)">
Dropdown G
<ul>
<li x-show="show_item($el)">Item G:A</li>
<li x-show="show_item($el)">Item G:B</li>
</ul>
</li>
</ul>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3584 次 |
| 最近记录: |