Jquery 选择器中的引号

quotes in Jquery selectors

我读了几个关于类似问题的答案,人们总是说单引号和双引号之间没有区别。问题是我有一小行代码似乎很重要...

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

此代码执行我希望他执行的操作:在 link 末尾放置一个 (v) 但此代码:

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

不起作用。为什么?跟浏览器有关系吗?我是 jquery 的新手,这是我第一次看到引述的类型有所不同。

谢谢

您需要通过添加 \ 来转义 "\"

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

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

所以你必须用一个反斜杠 \" 来转义它,字面上告诉解析器忽略它(它只是字符串的一部分)这样你的字符串就可以保持 intact.If 你使用 "mismatched"字符串内的引号,你是犹太教徒。

以双引号开头的字符串可以包含单引号,反之亦然,无需转义。

这两个都有效:

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

但是,如果您在字符串中使用相同的引号作为字符串的开头,则需要对它们进行转义

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

这与jQuery无关。这就是 javascript 处理字符串的方式