javascript - 选择数据属性等于任意值的元素

标签 javascript jquery wildcard show custom-data-attribute

我正在使用 jQuery 来显示和隐藏元素,并且需要传递一个将“显示全部”的数据属性值,即:[data-country*="anything"] 或带有 data 属性'国家' 等于任何值。

我有两个过滤器列表(国家/地区和类型),单击时将过滤器值添加到数组中。然后两个数组都连接到 .show() 所有具有包含该值的数据属性的项目:

$("section.collaborator[data-country*='" + countryTog.join("'][data-country*='") + "'][data-collaborator_type*='" + collaborator_typeTog.join("'][data-collaborator_type*='") + "']").show('fast');

是否有一个值可以添加到我的数组中,该值将充当上面推测的通配符?

例如:如果我在国家/地区过滤器菜单上点击“爱尔兰”并在类型过滤器菜单上点击“艺术家”,我的选择器将如下所示:

$(".collaborator[data-country*='ireland'][data-collaborator_type*='partner']").show();

或者如果我添加另一个国家/地区,它看起来像:

$("section.collaborator[data-country*='ireland'][data-country*='united-kingdom'][data-collaborator_type*='partner']").show();

现在,如果我将鼠标向上移动一点并点击国家/地区过滤器菜单上的“全部”按钮,我当前会得到:

$("section.collaborator[data-country*='*'][data-collaborator_type*='artist']").show();

我希望发生的事情是对于具有 data-country'[anything]'data-type='artist' 属性的所有项目展示。

我知道可以查询数据属性是否存在,但在这种情况下我需要传递一个值。

最佳答案

如果您想选择具有特定数据属性的所有元素,但不关心该值是什么,只需使用不带等号的[data-attribute]即可。因此,如果您想要任何国家/地区,但只需要艺术家,请使用 $('[data-country][data-type="artist"]')

关于javascript - 选择数据属性等于任意值的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40391401/

相关文章:

Jquery .next() 未按预期工作

javascript - 使用 HighCharts 的 24 小时时间事件图表

带有通配符和隐藏文件的 Bash for 循环

asp.net-mvc - 如何在 ASP.NET MVC 4 中定义一个捕获(绝对)所有路由

javascript - Blogger,如何更改 'Random' 帖子的缩略图大小?

javascript - 如何检查嵌套数组是否包含值?

javascript - 如何通过 JavaScript 在 Bokeh 中设置输入文本字段的值?

EXCEL如何反向匹配以查找通配符

javascript - 如何为 JVector Map 设置背景颜色?

javascript - React Native 的 React Navigation/Redux 实现出现错误 'undefined is not an object (evaluating ' _AppNavigator2.default.router')