[英]Escaping apostrophe (single quote) character in javascript and html
我有以下情況:
我在javascript中編寫了一個包含撇號字符的字符串。 該字符串實際上是html代碼,后來使用innerHTML
方法附加到html。 所以代碼看起來像這樣:
var str = '<a href="javascript:foo("ba'r")">link</a>'; (argument of the foo function is string)
然后,將這個字符串插入到這樣的html元素中:
dataHolder.innerHTML = str;
我試圖逃跑'
字用'
, '
和\'
但是所有這些在調用innerHTML
方法后都呈現為'
,因此,當通過單擊鏈接調用上述示例中的方法foo
時,我總是收到JavaScript錯誤,說: Uncaught SyntaxError: missing ) after argument list
出現Uncaught SyntaxError: missing ) after argument list
你需要有兩個'
和"
你的字串,所以你將需要第三個辦法delcare一個字符串,您可以使用模板字符串為。聲明你ba'r
字符串作為模板字符串,並使用反斜杠逃脫它的撇號\\
:
document.querySelector('#myDiv').innerHTML = '<a href="javascript:foo(`ba\\'r`)">link</a>'; function foo(data) { console.log(data); }
<div id="myDiv"></div>
在字符串中使用\\'
代替'
,因此應該
var str = '<a href="javascript:foo(ba\\'r)">link</a>';
但是,此代碼僅在字符串格式方面是正確的。 我想你想要的可能是
var str = '<a href="javascript:foo(\\'bar\\')">link</a>';
您也可以使用反引號`來避免此問題:
var str = `<a href="javascript:foo(ba'r)">link</a>`;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.