html中的Javascript - 在另一个单引号中使用单引号

Ash*_*air 8 javascript quotes

document.getElementById("img").innerHTML="< img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick='alert('hello');' />";
Run Code Online (Sandbox Code Playgroud)

上面的代码是我的javascript.问题是打印你好或任何其他字符串.如果我只是输入123代替你好,它确实提醒.但我不能在那里使用像你好的字符串.通常,警报函数中的字符串保留在引号内,但整个内容都在双引号内,并且我已经在onclick函数的开头使用了单引号.我尝试使用Escape字符("\"),但它没有帮助.有什么建议?

Dar*_*rov 14

试试这个:

document.getElementById("img").innerHTML = '<img src="/sitepath/' + imgg + '.jpg" width="72" height="44" onclick="alert(\'hello\');" />';
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 8

如果使用撇号作为HTML属性的分隔符,则必须对放在属性中的撇号进行HTML编码:

document.getElementById("img").innerHTML="< img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick='alert(&#39;hello&#39;);' />";
Run Code Online (Sandbox Code Playgroud)

我更喜欢使用撇号作为Javascript中的字符串分隔符和引号作为HTML属性的分隔符.然后你只是逃避Javascript字符串中的撇号:

document.getElementById("img").innerHTML='< img src="/sitepath/'+imgg+'.jpg" width="72" height="44" onclick="alert(\'hello\');" />';
Run Code Online (Sandbox Code Playgroud)

要将任何字符串放在Javascript中,在HTML属性中,在Javascript中的字符串内,您可以:

  • 转义字符串中的任何字符串分隔符
  • HTML编码Javascript代码
  • 转义HTML字符串中的任何字符串分隔符

  • @TRiG:是的,他们是撇号.具体来说,它是一个"打字机撇号".引号根本不是一个字符,它是你在引号之间放置的文本,所以为了正确你应该把它称为"单引号",这有点麻烦,但仍然不是真正正确的,因为那是一个不同的字符.真正的引号(单引号,双引号和所有其他引号)是印刷字符,而不是Javascript中使用的引号. (3认同)