我读了几个关于类似问题的答案,人们总是说单引号和双引号之间没有区别。问题是我有一小行代码似乎很重要......
$("li[data-type|='veg']").append(' (v)');
这段代码做我想让他做的事情:在链接末尾放一个(v)但是这段代码:
$("li[data-type|="veg"]").append(' (v)');
不起作用。为什么?和浏览器有关系吗?我是 jquery 的新手,这是我第一次看到报价的类型有所不同。
谢谢
我读了几个关于类似问题的答案,人们总是说单引号和双引号之间没有区别。问题是我有一小行代码似乎很重要......
$("li[data-type|='veg']").append(' (v)');
这段代码做我想让他做的事情:在链接末尾放一个(v)但是这段代码:
$("li[data-type|="veg"]").append(' (v)');
不起作用。为什么?和浏览器有关系吗?我是 jquery 的新手,这是我第一次看到报价的类型有所不同。
谢谢
这就是js的解析方式。您必须记住,您将 STRING 作为参数传递给 jquery 函数。在这个特定的字符串中,有一个 jquery 解析的表达式(一个选择器),它可以包含一个引号。如果您使用相同类型的引号,您会意外终止字符串,而不是将其插入到字符串中。如果您注意到字符串中的颜色变化...
所以你必须用一个反斜杠 \" 来转义它,它实际上告诉解析器忽略它(它只是字符串的一部分),这样你的字符串就可以保持完整。如果你在字符串中使用“不匹配”的引号,你就是 kosher .
您需要"
通过添加\
:来转义\"
。
这是许多其他特殊字符的列表,以及如何转义它们。
以双引号开头的字符串可以包含单引号,反之亦然,无需转义。
这两个都是有效的:
$("li[data-type|='veg']");
$('li[data-type|="veg"]');
但是,如果您在开始字符串的字符串中使用相同的引号,则需要转义它们
$("li[data-type|=\"veg\"]");
这与 jQuery 无关。这就是 javascript 处理字符串的方式