一千萬個為什麽

搜索

需要轉義jQuery選擇器字符串中的特殊字符


根據選擇器文檔,您必須使用雙反斜杠轉義 [\\ [

我有一個像這樣創建的選擇器(在這個例子中假設 val 屬性是某事[4] [2] )。

var val = $(this).attr('val');           

$select.find('option[value=' +  val + ']').show();

我可以寫一個正則表達式來逃避括號嗎?

最佳答案

如果你想要一些適用於任何價值的東西,試試這個:

var val = $(this).attr('val').replace(/[!"#$%&'()*+,.\/:;<=>[email protected][\\\]^`{|}~]/g, "\\\\$&")

這可以通過兩個轉義 jQuery文檔的選擇器頁面上列出的所有CSS元字符來實現反斜杠。

請記住,在您的情況下,沒有必要像這樣做一些棘手的事情。您可以使用過濾器功能選擇具有給定值的所有選項元素,而不必轉義該值,正如Mathias Bynens的回答所述。

轉載註明原文: 需要轉義jQuery選擇器字符串中的特殊字符

猜你喜歡