Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery根据输入(搜索栏)值显示/隐藏img元素_Javascript_Jquery_Html_Css_Toggle - Fatal编程技术网

Javascript 使用Jquery根据输入(搜索栏)值显示/隐藏img元素

Javascript 使用Jquery根据输入(搜索栏)值显示/隐藏img元素,javascript,jquery,html,css,toggle,Javascript,Jquery,Html,Css,Toggle,我有一个照片库网格,希望能够搜索img标签的“数据标题”值,只显示具有匹配数据的图像。因此,如果我输入“hay”,下面的图像就会显示出来,但是网站上所有数据标题中没有“hay”的图像都会被隐藏 <a href="photo_gallery\photos\01.jpg" data-lightbox="gallery" data-title ="Hay Bales - I love hay bales. Took this snap on a drive through the coun

我有一个照片库网格,希望能够搜索img标签的“数据标题”值,只显示具有匹配数据的图像。因此,如果我输入“hay”,下面的图像就会显示出来,但是网站上所有数据标题中没有“hay”的图像都会被隐藏

<a href="photo_gallery\photos\01.jpg" data-lightbox="gallery" data-title
 ="Hay Bales - I love hay bales. Took this snap on a drive through the 
 countryside past some straw fields.">
    <img src="photo_gallery\photos\thumbnails\01.jpg" alt="fields">
</a>  
我哪里出了问题?搜索栏也是这样设置的

 <div class="searchBar">
   <input type="text" name="search" id="search" placeholder="Search">
 </div>

由于锚定标记没有文本节点,因此使用JQuery.text()方法将导致根据空字符串测试值。相反,以元素的数据属性为目标,并将其用作正则表达式测试的主题

$('#search').keyup(function() {

    var value = $(this).val();
    var exp = new RegExp(value);

    $('a').each(function() {
        var isMatch = exp.test($(this).data('title'));
        $(this).toggle(isMatch);
    });
});

另一种解决方法是完全删除
RegExp
,因为您使用的是和html5数据集,如果需要,您可以直接比较这些值

大概是这样的:


感谢您的帮助!:)
$('#search').keyup(function() {

    var value = $(this).val();
    var exp = new RegExp(value);

    $('a').each(function() {
        var isMatch = exp.test($(this).data('title'));
        $(this).toggle(isMatch);
    });
});