如何在 jQuery 选择器上应用正则表达式?
How can I apply a regex on a jQuery selector?
我在网上搜索了一下,但没有找到解决我的问题的方法。这是我的select或:
jQuery('[data-group="' + a + '"]').show()
a
是类似于 swimming
的文本或任何单词。在 HTML 中它看起来像这样:
<div data-group="swimming">...</div>
所以上面的 selector 会显示 div 如果 a = swimming
。现在假设数据组包含单词 simming,但它不是唯一的,如下所示:
<div data-group="swimming,driving,flying">...</div>
我怎样才能 select div 与 select 或者 a = swimming
?我希望你明白我的意思:)。
谢谢!
您可以使用包含选择器的值:
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();
您也可以使用.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() and HTMLElement.dataset
我在网上搜索了一下,但没有找到解决我的问题的方法。这是我的select或:
jQuery('[data-group="' + a + '"]').show()
a
是类似于 swimming
的文本或任何单词。在 HTML 中它看起来像这样:
<div data-group="swimming">...</div>
所以上面的 selector 会显示 div 如果 a = swimming
。现在假设数据组包含单词 simming,但它不是唯一的,如下所示:
<div data-group="swimming,driving,flying">...</div>
我怎样才能 select div 与 select 或者 a = swimming
?我希望你明白我的意思:)。
谢谢!
您可以使用包含选择器的值:
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();
您也可以使用.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() and HTMLElement.dataset