【发布时间】:2017-10-29 18:18:25
【问题描述】:
我有一个容器内多个 div 的列表:
<div class='platform'>
<div class='pldatawrcurrencies'>
<div class='platform-data'>DKK, USD, CZK</div>
</div>
<div class='pldatawrissuesloanscountry'>
<div class='platform-data'>UK, US, France</div>
</div>
</div>
<div class='platform'>
<div class='pldatawrcurrencies'>
<div class='platform-data'>EUR, USD, PLN</div>
</div>
<div class='pldatawrissuesloanscountry'>
<div class='platform-data'>Germany, Denmark, France</div>
</div>
</div>
<div class='platform'>
<div class='pldatawrcurrencies'>
<div class='platform-data'>SEK, GBP, PLN</div>
</div>
<div class='pldatawrissuesloanscountry'>
<div class='platform-data'>Poland, UK, Spain</div>
</div>
</div>
<div id="CLP">
<div>Enter desired currency:
<input type='text' id='currencies' placeholder='Search Text'>
</div>
<div>Enter desired country:
<input type='text' id='countries' placeholder='Search Text'>
</div>
</div>
我希望允许访问者根据货币和/或国家/地区过滤平台。但是我对 JS 很陌生,找不到合适的解决方案。
假设您要查找 pldatawrcurrencies = PLN 但仅在 pldatawrissuesloanscountry = 波兰的情况下,我在第一个搜索字段中输入“PLN”,在第二个字段中输入“波兰”。结果应该过滤掉不包含这些特定参数的所有内容。
以下是我在网上某处找到并进行了调整的解决方案。它仅根据货币进行过滤。我已经尝试找到一种使用两个过滤器的方法,但无济于事。
// Search function
var search = ('#currencies');
$(document).ready(function(){
searchNow(search);
});
function searchNow(searchKey) {
$(searchKey).keyup(function(){
// Search text
var text = $(this).val();
// Hide all content class element
$('.platform').hide();
// Search and show
$('.platform .pldatawrcurrencies:contains("'+text+'")').closest('.platform').show();
});
}
$.expr[":"].contains = $.expr.createPseudo(function(arg) {
return function( elem ) {
return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
【问题讨论】:
标签: javascript jquery filter