2014-03-19 31 views
3

我無法弄清楚如何編寫這個工作。我們有一個用戶可以上傳文件的頁面,列表將顯示在屏幕上。問題出在文件名有單引號的時候。我們正在使用jQuery。有一些代碼生成正在進行,但這是出來的基礎知識。jQuery.html()與單引號

$(someElement).html('<label onclick="$(someOtherElement).attr(\'title\', \'TheFile\\'Name.pdf\')">Some Text</label>'); 

文件名中的單引號引起問題。我試着用一個反斜槓和兩個反斜槓來轉義它。使用單個反斜槓代碼運行,但生成此html:

<label onclick="$(someOtherElement).attr('title', 'TheFile'Name.pdf')">Some Text</label> 

現在onclick失敗。

使用2個反斜槓,jquery html()行將不會運行。在這兩種情況下,我都會在不同的地方得到意外的標識符。

+0

您可能想要更正在代碼'#(someElement)'中出現錯字的內容。我重新格式化了您的問題,但沒有更改內容。 – j08691

+1

使用更好的jQuery功能。例如,創建一個像$(「

回答

2

你需要一個反斜槓特里普爾:

$(someElement).html('<label onclick="$(someOtherElement).attr(\'title\', \'TheFile\\\'Name.pdf\')">Some Text</label>'); 

爲什麼3?

第一個轉義的第二個反斜槓將跳過HTML代碼中的'

第三個逃脫'以防止字符串關閉。

0

How to escape single quote

嘗試使用字符值與&符號轉義引號。

+0

謝謝。我嘗試使用字符值,但它的行爲就像我試圖用一個單斜槓逃脫它。我仍然有相同的HTML和onclick失敗。 – kombat

1

您不僅需要加倍但是反斜槓的三倍。

原因是你最初通過做\'逃過'。然而,現在您有兩個字符可以轉義,所以\轉到\\'轉到\',再次轉給\\\'