2012-09-08 36 views
0

我正在編寫JavaScript代碼,點擊時將getImage函數指定爲稍後應顯示在頁面中的圖像的源代碼。但是,引號給我一個問題。HTML標記包含引號內部的JavaScript代碼中的引號

<img src="bill.jpg" class="captify" 
id="teamformat" alt="Bill Gates" onclick="getName('Bill Gates'); 
getMotto('Bill\'s motto'); 
getImage ('<img src=\"http://www.somepage.com/images/team/bill.jpg\"/>');" /> 

如何修復getImage函數中的引號? 謝謝。

+0

你只有在一個字符串逃脫重複報價,比如:'樂趣('這是它\的最後的「天」「)' –

回答

3

通常情況下,你不需要在單引號分隔字符串逃脫雙引號:

getImage ('<img src="http://www.somepage.com/images/team/bill.jpg"/>');" /> 

同樣,getMotto可以重新寫爲:

getMotto("Bill's motto"); 

你得到一個問題因爲你在同一個屬性中使用了兩種引號樣式 - 你有太多的JavaScript和你的需要轉義內部雙引號(使用&quot;)。

這兩個都應該放在一個JavaScript函數中,您可以將click事件附加到 - 不要直接將它們放在onclick事件處理程序中,這是不好的做法。

喜歡的東西:

function getDetailsForBill(){ 
    getName('Bill Gates'); 
    getMotto('Bill\'s motto'); 
    getImage ('<img src="http://www.somepage.com/images/team/bill.jpg" />'); 
} 

使得onclick

onclick="getDetailsForBill();" 

雖然你真的應該註冊一個事件偵聽器,使用addEventListener

+0

感謝您及時回覆。這是一個好主意,把所有東西放在一個單一的功能中。我刪除了引號轉義斜線,並且我在可點擊的圖片下面打印了這個圖片');「/> – TheShadowbyte

+0

@ user1655857 - 正如我所說的,通過使用函數避免所有這些問題。 – Oded

+0

「_你不需要在單引號分隔字符串中使用雙引號」 - 嗯,在這種情況下,你呢,是嗎?解析屬性時,HTML不會調用JavaScript分析器。我很確定一個屬性值不能包含一個原始的''',這就是'"'的用途 – Eric

0

不要逃避它:

getImage ('<img src="http://www.somepage.com/images/team/bill.jpg"/>');" />