2015-10-16 41 views
1

我在网上搜索了一下,但没有找到解决我的问题的方法。这是我的选择:如何在jQuery选择器上应用正则表达式?

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

a就像swimming或任何文字文本。在HTML它看起来像这样:

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

所以上面的选择将显示该专区如果a = swimming。现在让我们说,数据组包含单词simming,但它不是唯一的一个,像这样:

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

如何我还可以选择带有如果a = swimming选择该分区?我希望你知道我的意思:)。

谢谢!

+0

http://stackoverflow.com/questions/190253/jquery-selector-regular-expressions – pistou

回答

3

您可以使用值包含选择:

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

但是甚至会swimminga等于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(); 
+0

完美的可能重复,改为〜=和改变了我的数据组。谢谢! – Arnie

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