我试图在屏幕上做一个过滤器,通过隐藏不符合要求的内容。
这是我目前的想法,我不知道我做错了什么。
查询:
jQuery('#searchBox').on('keyup change', function() {
var search = $('#searchBox').val();
//for each h4
$('h4').each(function(){
var h4id = $(this).attr('id');
if ($(h4id).contains(search))
$(this).show();
else
$(this).hide
});
于飞:
<input type="search" name="search" id="searchBox"/>
<h4 id="Adminstrator">Administrator</h4>
<h4 id="John,Smith">John Smith</h4>
<h4 id="Jane,Smith">Jane Smith</h4>
(我使用的是jQuery 1.9.1)(因此,如果我开始键入Smith,“Administrator”h4应该会消失。
4条答案
按热度按时间pftdvrlh1#
试试这个:-简单的,但是区分大小写
Demo(第一个字母)
看看这是否有帮助。我不会使用id来存储字符串比较,因为多个人的名字可以相同,你可能最终会有多个h4具有相同的id。所以我在这里使用了data-attribute和jquery数据。
Demo(第一个字母)
修复您的代码将意味着这一点。没有
contains
函数和其他几个错别字。Demo
wydwbb8l2#
尝试基于正则表达式的解决方案
演示:Fiddle
ocebsuys3#
只需使用jQuery属性选择器,参见here,只需两行代码就足够了。演示:
vbkedwbf4#
.contains不会给予选择器的文本内容。它只会搜索选择器内部的元素。
尝试这种方法..这可以优化很多
确保您的id是唯一的。
其次,您的ID中不应包含**、**