jQuery filter() 方法
jQuery 筛选过滤
使用 jQuery 筛选/搜索 特定元素。
表格筛选
对表中的项目执行不区分大小写的搜索:
在输入字段中输入一些内容,在表格中搜索名字、姓氏或 Email:
| 姓氏 | 名称 | |
|---|---|---|
| John | Doe | john@example.com |
| Mary | Moe | mary@mail.com |
| July | Dooley | july@greatstuff.com |
| Anja | Ravendale | a_r@test.com |
代码如下:
<!DOCTYPE html><html><head><script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script><script>$(document).ready(function(){$("#myInput").on("keyup", function() {var value = $(this).val().toLowerCase();$("#myTable tr").filter(function() {$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)});});});</script><style>table {font-family: arial, sans-serif;border-collapse: collapse;width: 100%;}td, th {border: 1px solid #dddddd;text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}</style></head><body><h2>筛选表格</h2><p>在输入字段中输入一些内容,在表格中搜索名字、姓氏或 Email:</p><input id="myInput" type="text" placeholder="Search.."><br><br><table><thead><tr><th>名称</th><th>姓氏</th><th>Email</th></tr></thead><tbody id="myTable"><tr><td>John</td><td>Doe</td><td>john@example.com</td></tr><tr><td>Mary</td><td>Moe</td><td>mary@mail.com</td></tr><tr><td>July</td><td>Dooley</td><td>july@greatstuff.com</td></tr><tr><td>Anja</td><td>Ravendale</td><td>a_r@test.com</td></tr></tbody></table><p>请注意,我们在 tbody 中开始搜索,以防止筛选表头。</p></body></html>
实例说明:
我们使用 jQuery 循环遍历表格的每一行,以检查是否有任何文本值与输入字段的值匹配。 toggle() 方法隐藏与搜索不匹配的行(display:none)。我们使用 toLowerCase() 方法将文本转换为小写,这使得搜索不区分大小写(搜索时可以使用 "john", "John", 甚至 "JOHN")。
过滤列表
对列表中的项执行不区分大小写的搜索:
在输入字段中输入一些内容以搜索列表中的项:
- First item
- Second item
- Third item
- Fourth
代码如下:
<!DOCTYPE html><html><head><script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script><script>$(document).ready(function(){$("#myInput").on("keyup", function() {var value = $(this).val().toLowerCase();$("#myList li").filter(function() {$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)});});});</script></head><body><h2>过滤列表</h2><p>在输入字段中输入一些内容,以在列表中搜索匹配的项:</p><input id="myInput" type="text" placeholder="Search.."><br><ul id="myList"><li>First item</li><li>Second item</li><li>Third item</li><li>Fourth</li></ul></body></html>
过滤其他
这是一个段落
这是 div 中的 div
另一个段落
代码如下:
<!DOCTYPE html><html><head><script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script><script>$(document).ready(function(){$("#myInput").on("keyup", function() {var value = $(this).val().toLowerCase();$("#myDIV *").filter(function() {$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)});});});</script></head><body><h2>过滤其他</h2><p>在输入字段中键入一些内容,在div元素中搜索 id="myDIV" 的特定文本:</p><input id="myInput" type="text" placeholder="Search.."><div id="myDIV"><p>这是一个段落</p><div>这是 div 中的 div</div><button style="margin:8px 4px 8px 0">这是按钮</button><button style="margin:8px 0">这是另一个按钮</button><p>另一个段落</p></div></body></html>