我有一个元素在我的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