我需要一些帮助来完成这个,因为我一点也不擅长 jQuery/JavaScript,这就是为什么我什至不知道如何搜索答案:
我有这个 HTML:
<input type="text" id="searchParameter">
<ul>
<li data-sr-geolocation="USA, Miami" style="display:none;"></li>
<li data-sr-geolocation="Brazil, Sao Pablo"></li>
<li data-sr-geolocation="Canada, Quebec"></li>
</ul>
我需要根据自定义属性值隐藏 li。
例如,如果在 searchParameter 中输入“加拿大、魁北克”或“魁北克”(包含),则隐藏所有其他 li。
由于我应用了其他过滤器(一些 li 已经隐藏),我只需要显示包含该值但尚未被其他过滤器隐藏的过滤器,即使它们具有搜索到的值也是如此。
最佳答案
如果我正确理解了问题,您可以选择可见的 li
元素,隐藏它们并显示匹配的元素,这样您的过滤就不会涉及已经隐藏的元素:
$('li').not(':hidden')
.hide()
.filter('[data-sr-geolocation*="'+ searchParameter +'"]')
.show();
关于javascript - Jquery - 根据维护其他过滤器的自定义属性隐藏 LI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21123272/