我正在使用jQuery来显示和隐藏元素,并且需要传递一个将``全部显示''的数据属性值,即:[data-country*="anything"]
或具有'country'的数据属性等于任何值。
我有两个过滤器列表(国家和类型),单击它们后会将过滤器值添加到数组中。然后将两个数组都连接到.show()
所有具有包含该值的数据attr的项目:
$("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属性的存在,但是在这种情况下,我需要传递一个值。
最佳答案
如果要选择所有具有特定数据属性的元素,但不在乎值是什么,则只需使用不带等号的[data-attribute]
即可。因此,如果您想要任何国家/地区,但仅想要艺术家,请使用$('[data-country][data-type="artist"]')
关于javascript - 选择数据属性等于任何元素的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40391401/