2016-03-08 91 views
0

在函數中,我構建了一個字符串。該字符串是一個彈出式窗口的內容(谷歌地圖信息窗口)。代碼看起來像這樣;函數調用的轉義變量?

var windowcontent = "<strong>Something</strong><br/>" + somethingVar + "<br/><br/>"; 
windowcontent += "<a href='javascript:goto('\"+var1+\"','\"+var2+\"');'>Goto</a>"; 

問題是鏈接和我想包含在函數調用中的變量。 無論我嘗試,我似乎無法得到它的工作。我知道這是逃避正確的方式,但我還沒有找到正確的方式,似乎。

字符串應該如何鏈接?

+2

不要逃避你的第二行的報價。 – Chris

回答

2

第二行應該是

windowcontent += "<a href='javascript:goto(\'" + var1 +"\',\'"+ var2 + "\');'>Goto</a>"; 

基本上你需要逃脫單引號,而不是雙引號。經過討論

更新代碼,demo

var var1 = encodeURI("(56.02, 9.27)") ; 
var var2 = encodeURI("(56.02, 9.27)") ; 

window.addEventListener("load", function() 
{ 
    document.body.innerHTML += '<a data-var1="' + var1 + '" data-var2="' + var2 + '" href="#" onclick="goto(this)"> Goto </a>'; 
    console.log(document.body.innerHTML); 
}, false); 

function goto (thisObj) 
{ 
    console.log(thisObj); 
    var var1 = thisObj.getAttribute("data-var1"); 
    var var2 = thisObj.getAttribute("data-var2"); 
    console.log(var1 + ' - ' + var2); 
} 
+0

應該是.....! – Jai

+0

我現在有這個; windowcontent + =「Go」; 但我得到這個錯誤,當我點擊鏈接:SyntaxError:預期的表達,得到了腳本的結束。 我的信息值爲: var1 =「(56.02,9.27)」 var2 =「一個帶有數字35和逗號等的長變量,」 – brother

+0

@brother你能告訴你的goto方法是什麼樣的嗎? – gurvinder372