2015-10-16 103 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