我有一個元素在我的HTML屬性「測試」具有值「\」。 例如如何搜索屬性值爲「」的元素?
<e1>
<e2 test="\"></e2>
</e1>
現在,當我做了查找來獲得要素如下: elem.find( '[值= 「\」]') 我獲得以下錯誤:
error: Syntax error, unrecognized expression: [value="\"]
任何想法關於如何解決這個問題?
我有一個元素在我的HTML屬性「測試」具有值「\」。 例如如何搜索屬性值爲「」的元素?
<e1>
<e2 test="\"></e2>
</e1>
現在,當我做了查找來獲得要素如下: elem.find( '[值= 「\」]') 我獲得以下錯誤:
error: Syntax error, unrecognized expression: [value="\"]
任何想法關於如何解決這個問題?
在文檔中它說你需要添加雙斜槓來逃避特殊字符。但是因爲\本身就是一個逃避角色,所以它需要翻倍。因此,您需要有4個斜槓才能匹配單斜槓。
$('[test="\\\\"]')
而我在我的評論中提到,你沒有屬性值,它是測試。 jQuery documentation有一個需要轉義的選擇器中所有特殊字符的列表。
那麼,我們如何概括這個屬性值呢?可以說屬性值是一個用戶輸入,因此它可以包含任何特殊字符以及正常字符。現在我怎麼能概括這種方法來正確搜索一個屬性值,而不管它是否包含特殊字符? – 2014-09-10 20:44:19
你將不得不編寫一個函數,用一個轉義序列替換字符串中的特殊字符。 – epascarello 2014-09-10 22:49:47
實際上應該是四倍:''[test =「\\\\ 「]'' – 2014-09-10 20:04:45
答案是錯誤的。 \\不匹配一個\ – epascarello 2014-09-10 20:05:20
@Regent,因爲第一個'\'轉義了第二個''''。當解析成正則表達式時,逃逸的'\'將會退出'''。 – 2014-09-10 20:07:17
閱讀有關特殊字符http://api.jquery.com/category/selectors/的文檔,您的示例中沒有「value」屬性 – epascarello 2014-09-10 20:00:39