簡體   English   中英

在JavaScript和HTML中轉義撇號(單引號)字符

[英]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;

我試圖逃跑'字用&apos; &#39; \'但是所有這些在調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM