简体   繁体   English

JQuery div 实时过滤器

[英]JQuery Live filter for div

I have div blocks which contain title and information.我有包含标题和信息的 div 块。 I have a script which works and search but for all information.我有一个脚本可以工作和搜索,但可以搜索所有信息。 I need my search works only for title.我需要我的搜索仅用于标题。 I think about maybe make some filter for search by .overlay-cls and h4我想也许可以通过.overlay-clsh4对搜索进行一些过滤

My script:我的脚本:

 jQuery("#country_search").keyup(function() { var filter = jQuery(this).val(); jQuery('.country-grid div').each(function() { if (jQuery(this).text().search(new RegExp(filter, "i")) < 0) { jQuery(this).hide(); jQuery('.country-info').show(); } else { jQuery(this).show(); } }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="search"> <input placeholder="Search Country" type="text" id="country_search" class="find_country"> </div> <div class="country-box search"> <div class="post_thumbnail" style="background-image: url('')"> <div class="overlay-cls"> <h4>Afghanistan</h4> </div> </div> <div class="country-info"> <span class="countValuete"> <span>Valuete</span> <strong>Afghan Afghani (AFN)</strong> </span> <span class="countrypay"> <span>Work Week</span> <strong>40 hours</strong> </span> <span class="countrytaxes"> <span>Employer Taxes</span> <strong>10% - 20%</strong> </span> </div> </div> <div class="country-box search"> <div class="post_thumbnail" style="background-image:url('')"> <div class="overlay-cls"> <h4>Albania</h4> </div> </div> <div class="country-info"> <span class="countValuete"> <span>Valuete</span> <strong>Albanian Lek (ALL)</strong> </span> <span class="countrypay"> <span>Work Week</span> <strong>20 hours</strong> </span> <span class="countrytaxes"> <span>Employer Taxes</span> <strong>16.7%</strong> </span> </div> </div> <div class="country-box search"> <div class="post_thumbnail" style="background-image:url('')"> <div class="overlay-cls"> <h4>Algeria</h4> </div> </div> <div class="country-info"> <span class="countValuete"> <span>Valuete</span> <strong>Algerian Dinar (DZD)</strong> </span> <span class="countrypay"> <span>Work Week</span> <strong>40 hours</strong> </span> <span class="countrytaxes"> <span>Employer Taxes</span> <strong>up to 26%</strong> </span> </div> </div>

You want to search the h4 in each .country-box :您想在每个.country-box搜索h4

 $("#country_search").keyup(function () { var filter = $(this).val().trim().toLowerCase(); $('.country-box.search').each(function () { if ($(this).find("h4").text().toLowerCase().includes(filter)) { $(this).show(); } else { $(this).hide(); } }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="search"> <input placeholder="Search Country" type="text" id="country_search" class="find_country"> </div> <div class="country-box search"> <div class="post_thumbnail" style="background-image: url('')"> <div class="overlay-cls"> <h4>Afghanistan</h4> </div> </div> <div class="country-info"> <span class="countValuete"> <span>Valuete</span> <strong>Afghan Afghani (AFN)</strong> </span> <span class="countrypay"> <span>Work Week</span> <strong>40 hours</strong> </span> <span class="countrytaxes"> <span>Employer Taxes</span> <strong>10% - 20%</strong> </span> </div> </div> <div class="country-box search"> <div class="post_thumbnail" style="background-image:url('')"> <div class="overlay-cls"> <h4>Albania</h4> </div> </div> <div class="country-info"> <span class="countValuete"> <span>Valuete</span> <strong>Albanian Lek (ALL)</strong> </span> <span class="countrypay"> <span>Work Week</span> <strong>20 hours</strong> </span> <span class="countrytaxes"> <span>Employer Taxes</span> <strong>16.7%</strong> </span> </div> </div> <div class="country-box search"> <div class="post_thumbnail" style="background-image:url('')"> <div class="overlay-cls"> <h4>Algeria</h4> </div> </div> <div class="country-info"> <span class="countValuete"> <span>Valuete</span> <strong>Algerian Dinar (DZD)</strong> </span> <span class="countrypay"> <span>Work Week</span> <strong>40 hours</strong> </span> <span class="countrytaxes"> <span>Employer Taxes</span> <strong>up to 26%</strong> </span> </div> </div>

I've used String#includes with String#lowerCase because your regex-based approach will fail if the user enters characters that have special meaning in regex, and because you're aiming for a simple substring search, which does not require the capabilities of regex in the first place.我将String#includesString#lowerCase一起使用,因为如果用户在正则表达式中输入具有特殊含义的字符,并且您的目标是简单的 ZE83AED3DDF4667DEC0DAAAACB2BB3BE0BZ 搜索,则基于正则表达式的方法将失败,这不需要以下功能首先是正则表达式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM