如何在jQuery选择器上应用正则表达式?

时间:2015-10-16 12:09:59

标签: jquery jquery-selectors

我在网上搜索了一下,但没有找到解决我问题的方法。这是我的选择器:

jQuery('[data-group="' + a + '"]').show()

aswimming或任何字词。在HTML中它看起来像这样:

<div data-group="swimming">...</div>

因此上面的选择器会显示div a = swimming。现在让我们说数据组包含单词simming,但它不是唯一的一个,如下所示:

<div data-group="swimming,driving,flying">...</div>

如果a = swimming,如何选择带选择器的div?我希望你知道我的意思:)。

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用值contains selector:

jQuery('[data-group*="' + a + '"]').show();

swimming等于a的匹配swim

如果重要,请使用例如

过滤它
jQuery('[data-group]').filter(function(){
    return this.dataset.group.split(',').indexOf(a) != -1
}).show();

如果您也可以更改HTML标记,那就更好了:

<div data-group="swimming driving flying">...</div>

然后你可以使用:

jQuery('[data-group~="' + a + '"]').show();

答案 1 :(得分:1)

您也可以使用.filter()

jQuery('[data-group]').filter(function(){
    return $(this).data('group').split(',').indexOf(a) > -1; //Convert to an array an check whether elements exist in array

    //Using native code
    //return this.dataset.group.split(',').indexOf(a) > -1
}).show();

参考文献:indexOf()HTMLElement.dataset