2016-03-08 93 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