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

时间:2010-01-08 09:12:45

标签: javascript quotes

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

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

7 个答案:

答案 0 :(得分:14)

试试这个:

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

答案 1 :(得分:8)

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

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

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

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

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

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

答案 2 :(得分:3)

JavaScript中的HTML内部有JavaScript。这自然令人困惑。最好避免引用和转义的字符串抛出问题(当使用用户提交的数据时,这很容易导致安全漏洞),并以DOM方式执行:

var img= new Image();
img.src= '/sitepath/'+imgg+'.jpg';
img.width= 72;
img.height= 44;
img.onclick= function() {
    alert('hello');
};
document.getElementById('img').appendChild(img);

答案 3 :(得分:1)

  

我尝试使用Escape字符(“\”),但它没有帮助

Javascript与C#不同,您一次只能使用两次,例如:alert('We are\\'t going to go')

答案 4 :(得分:0)

您需要使用双引号并在onclick属性中将其转义

document.getElementById("img").innerHTML="&lt;img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick=\"alert('hello');\" /&gt;";

答案 5 :(得分:0)

外部引号是单引号还是双引号无关紧要。您可以使用反斜杠转义外部字符串中的字符... \'变为'字符串本身。无论是达林还是马苏德的例子都可行。但马苏德对于需要使用双引号作为外部封闭是无知的。

答案 6 :(得分:0)

如果有人需要发送变量而不是字符串“hello”怎么办?像这样:

function showContent(toPopulate) { 
      document.getElementById(toPopulate).innerHTML = "<a href='javascript:showOtherContent(*toPopulate*);'>show</a>"
}

function showOtherContent(toPopulate) {...}

那么如何将toPopulate作为变量发送到showOtherContent()?

以上解决方法如下:

document.getElementById(toPopulate).innerHTML = "<a href='javascript:showOtherContent(\"" + toPopulate + "\");'>show</a>"