- 此问题在此处已有答案**:
Why are inline event handler attributes a bad idea in modern semantic HTML?(3个答案)
Single quote escape in JavaScript function parameters(7个答案)
九年前就关门了。
- 更新:**我想给这个问题一个更新的答案。首先,让我声明,如果你试图完成我下面的任务,我建议你用adding event listeners来管理事件。我强烈建议你在你的项目中使用jQuery,并使用它们的语法来manage event listeners而不是使用DOM。
- 问题**
好吧,我基本上是这么做的:
document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\'ex1\')' />";
我不希望在'的地方使用双引号(")。我只希望使用单引号,所以我尽量在使用时不使用双引号。我试图在最终结果中达到这一点。
<img src="something" onmouseover="change('ex1')" />
逃避对我没用。
我标记的答案很好用,但是,更干净的(更专业的方式,IMO)是loganfsmyth's answer。
5条答案
按热度按时间30byixjq1#
你应该考虑浏览器最后会看到什么,在这种情况下,它会看到:
换句话说,“onmouseover”属性只是
change(
,还有一个名为ex1')'
的“属性”没有值。事实上,HTML并没有使用
\
作为转义字符,但是它确实识别出"
和'
分别作为转义引号和撇号。有了这些知识,请使用以下方法:
......也就是说,您可以只使用JavaScript引号:
aurhwmvo2#
这里的答案很简单:
您已经将它包含在双引号中,所以没有必要使用
\
将它转义。如果要转义单引号字符串中的单引号:
或者,如果您想转义
\'
,可以将bashslash转义为\\
,将引号转义为\'
,如下所示:但是,如果包含的字符串具有不同的引号类型,则不需要转义:
u0njafvf3#
可以在JavaScript中转义
'
,例如\'
m4pnthwp4#
由于这些值实际上位于HTML属性内部,因此应该使用
'
8yparm6h5#
或
它应该是工作...