我正在使用 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/