javascript - Jquery - 根据维护其他过滤器的自定义属性隐藏 LI

标签 javascript jquery html

我需要一些帮助来完成这个,因为我一点也不擅长 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/

相关文章:

javascript - 的意思 !!在 JavaScript 中

javascript - jqgrid 与 jquery.mobile-1.0rc2 兼容

javascript - 覆盖 javascript 点击事件一次

jquery - 如何在没有 URL 中显示的值的情况下提交表单?

javascript - Bootstrap 3 工具提示不起作用

javascript - 在 Ubuntu 上托管后查找 MongoDB 详细信息

javascript - Angular 获取请求

javascript - 在移动设备中删除 HTML <a> 标记的 URL 的查询字符串

html - 如何使用 CSS 正确选择第一个或最后一个 child ?

php - 为 Mysql 层表生成 JSON 对象 (PHP)