Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中转义单个引号(';)?_Javascript_Html_Escaping - Fatal编程技术网

如何在JavaScript中转义单个引号(';)?

如何在JavaScript中转义单个引号(';)?,javascript,html,escaping,Javascript,Html,Escaping,更新: 我想对这个问题给出最新的答案。首先,让我声明,如果您正试图完成下面的内容,我建议您改为通过管理事件。我强烈建议您在项目中使用它们,并使用它们的语法来避免过度使用DOM 问题 好的,我基本上是这样做的: document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\'ex1\')' />"; document.getElementById(“某物”).in

更新: 我想对这个问题给出最新的答案。首先,让我声明,如果您正试图完成下面的内容,我建议您改为通过管理事件。我强烈建议您在项目中使用它们,并使用它们的语法来避免过度使用DOM

问题

好的,我基本上是这样做的:

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\'ex1\')' />";
document.getElementById(“某物”).innerHTML=“”;
我不想要双引号(“),我把\')。我只想要一个单引号,所以我尽量不让它放在双引号时使用。我试图达到这一点,在最终的结果

<img src="something" onmouseover="change('ex1')" />

逃跑对我没用


我的有标记的答案很好,但是,更干净(更专业的方式,国际海事组织)是。

这里的答案非常简单:

您已经将其包含在双引号中,因此无需使用
\
对其进行转义

如果要在单引号字符串中转义单引号:

var string = 'this isn\'t a double quoted string';
var string = "this isn\"t a single quoted string";
//           ^         ^ same types, hence we need to escape it with a backslash
或者,如果要转义
\'
,可以将斜杠转义为
\\
,将引号转义为
\'
,如下所示:

var string = 'this isn\\\'t a double quoted string';
//                    vvvv
//                     \ ' (the escaped characters)
但是,如果包含具有不同引号类型的字符串,则不需要转义:

var string = 'this isn"t a double quoted string';
var string = "this isn't a single quoted string";
//           ^        ^ different types, hence we don't need escaping

你可以在JavaScript中逃脱<代码> <代码> \代码>

你应该总是考虑浏览器到底会看到什么。在这种情况下,它会看到:

<img src='something' onmouseover='change(' ex1')' />
…也就是说,您可以使用JavaScript引号:

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\"ex1\")' />";
document.getElementById(“某物”).innerHTML=“”;

由于值实际上位于HTML属性内部,因此应使用
&apos;

"<img src='something' onmouseover='change(&apos;ex1&apos;)' />";
”;
document.getElementById(“某物”).innerHTML=“”;

document.getElementById(“某物”).innerHTML='';

它应该可以工作…

…或者,更好的是,根本不要使用内联属性处理程序;尤其是在通过javascript创建的元素上。尝试过。它仍然给我未定义的属性,而不是给我的值ex1Alright。我犯了一个用户错误…放在错误的位置。先生,如果我写
,这是不起作用的,但如果我将其更改为
“警报(“你好”)"
那为什么呢?@SurajJain你读过答案吗?谢谢。我试过一次,但我想我可能会把它放在最坏的位置。这解决了我的问题。谢谢。这对我在尝试使用文本/x模板内部时起到了作用。先生
这不起作用。你能指出一个错误吗?@SurajJain Firs首先,你不应该在alert中使用引号-你正在输出一个文本值,其次,你应该在脚本中转义引号或更改引号的类型。谢谢,你能告诉我行高是多少吗?@SurajJain这里的评论对于任何不相关的讨论来说都不是很好,但是行高就是行高e线。你可以
"<img src='something' onmouseover='change(&apos;ex1&apos;)' />";
    document.getElementById("something").innerHTML = "<img src=\"something\" onmouseover=\"change('ex1')\" />";
    document.getElementById("something").innerHTML = '<img src="something" onmouseover="change(\'ex1\')" />';