更新: 我想就这个问题作一个最新的回答。首先,让我说明一下,如果您试图完成下面的工作,我建议您通过添加事件侦听器来管理事件。我强烈建议您在项目中使用jQuery,并使用它们的语法来管理事件侦听器,而不是使用DOM。

问题

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

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

我不希望在放置\'的地方使用双引号(")。我只想要一个单引号,所以我试图不让它在使用时放一个双引号。我试图在最终的结果中达到这一点。

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

逃避对我没用。

我标记的答案很好,然而,更干净(在我看来也更专业)的是loganfsmyth的答案。


当前回答

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

OR

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

它应该会起作用……

其他回答

由于这些值实际上在HTML属性中,所以应该使用&apos;

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

OR

    document.getElementById("something").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

或者如果你想转义\',你可以将bash斜杠转义为\\,并将引号转义为\',就像这样:

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

您应该始终考虑浏览器最终将看到什么。在这种情况下,它会看到:

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

换句话说,“onmouseover”属性只是change(,还有另一个“属性”称为ex1')',没有值。

事实上,HTML并不使用\作为转义字符。但它确实承认“;事情就让它,,分别为转义引号和撇号。

有了这些知识,使用这些:

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(&quot;ex1&quot;)' />";

... 也就是说,你可以使用JavaScript引用:

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

你可以转义'在JavaScript中,像\'