如何在JavaScript中避免单引号(')?

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

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

我不希望双引号(“),我只是想要一个单引号,所以我试图在使用它时不会放两个双引号,我试图在最后的结果中达到这个目的。

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

逃跑不适合我。

更新:我标记的答案工作正常,但是,清洁(更专业的方式,国际海事组织)是这样的答案: https : //stackoverflow.com/a/16134953/1754890

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

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

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

事实是,HTML不使用\作为转义字符。 但它确实承认&quot;&apos; 作为逃脱的报价和撇号,分别。

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

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

这就是说,你可以使用JavaScript引号:

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

这里的答案很简单:

你已经把它放在双引号中,所以没有必要用\来转义它。

如果您想在单引号string中转义单引号:

 var string = 'this isn\'ta double quoted string'; var string = "this isn\"ta single quoted string"; // ^ ^ same types, hence we need to escape it with a backslash 

或者如果你想逃避,你可以将bashslash转义为\\并将引号转义为:

 var string = 'this isn\\\'ta double quoted string'; // vvvv // \ ' (the escaped characters) 

但是,如果包含具有不同引号types的string,则不需要转义:

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

你可以跳过一个'像JavaScript一样的\'

由于这些值实际上在HTML属性的内部,因此应该使用&apos;

 "<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\')" />'; 

它应该工作…