2015-03-02 78 views
0

我读了几个有关类似问题的答案,人们总是说单引号和双引号没有区别。问题是我的代码,不知怎的,似乎无关紧要有点线...在Jquery选择器中的引号

$("li[data-type|='veg']").append(' (v)'); 

这段代码做什么,我希望他做的事:A(V)的链接,但这段代码的结尾:

$("li[data-type|="veg"]").append(' (v)'); 

不起作用。为什么?它是否与浏览器有关?我是jquery的新手,这是我第一次看到引用类型的差异。

感谢

回答

0

这就是js如何解析。你必须记住,你将一个STRING作为参数传递给jquery函数。在这个特定的字符串中,有一个jQuery解析(一个选择器)的表达式,可以包含引号。如果您使用相同类型的报价,则意外终止字符串,而不是将其插入到字符串中。如果您注意到字符串中的颜色变化... ...

因此,您必须使用反斜杠\“来逃避它”,它实际上告诉解析器忽略它(它只是字符串的一部分),以便您的字符串可以保持原样。如果您使用字符串里面的“不匹配”的报价,你是犹太

0

您需要通过添加一个\逃离"\"

Here是许多其他特殊字符的列表,以及如何逃避它们。

0

与双引号可以包含单引号,反之亦然没有逃脱开头的字符串

这两者都是有效的:。

$("li[data-type|='veg']"); 
$('li[data-type|="veg"]'); 

但是,如果您使用相同的引用s内的字符串开始的字符串,你需要逃避他们

$("li[data-type|=\"veg\"]"); 

这与jQuery无关。 JavaScript只是如何处理字符串