2016-10-26 57 views
0

嗨javascript函數我有一個JavaScript函數返回以下字符串作爲呼叫在return語句

return "<b>" + param1 + "</b><br /><a target='_blank' href=https://en.wikipedia.org/wiki/" + param2 +">Wikipedia Entry</a>"; 

返回呈現爲鏈接的字符串。

我想單擊鏈接時調用一個單獨的函數。即我想建立返回字符串如下。

return "<b></b><a target='_blank' href="#" onClick=\"MyFunction('" + param1 +"', '" +param2+"')\">Wikipedia Entry</a>"; 

任何想法上面的問題是什麼?

+0

你必須在'HREF = 「#」'逃脫引號了。 – jojonas

回答

0

既然onClick是一個屬性,你應該用引號將它的值包裝起來。

0

由於param1param2是您在創建字符串時使用的變量,所以需要連接其值和重要值以將其包含在引號中。

return "<b></b><a href=\"#\" onClick=\"MyFunction('" + param1 +"', '" +param2+"')\">Wikipedia Entry</a>"; 
+0

謝謝。這工作,即不會出錯。然而,字符串'維基百科條目'不再作爲鏈接出現。 – user1603842

+0

嗯不知道爲什麼它不調用MyFunction()onclick。我剛剛在myFunction中添加了一個警報。甚至刪除所有參數作爲返回「Wikipedia Entry」;請參閱https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=widget_extendInfowindow上的沙箱示例 – user1603842

0

:)

function fn01(){ 
 
    var param1 = "param1"; 
 
    var param2 = 1000; 
 
    
 
    param1 = ' " ' + param1 + ' " '; //<---- add " in param1 
 
    param2 = ' " ' + param2 + ' " '; //<---- add " in param2 
 
    
 
    var body = document.getElementById('link') 
 
    var b = "<b></b><a target='_blank' href='#' onClick='MyFunction("+ param1 +", " + param2 +")'>Wikipedia Entry</a>"; // <--- remove ' out MyFunction 
 
    
 
    body.innerHTML += b + "<br/><br/><br/>"; 
 
} 
 

 
function MyFunction(str1,str2){ 
 
    console.log(str1); 
 
    console.log(str2); 
 
}
a { 
 
    background: #000; 
 
    color:#fff; 
 
    padding:5px; 
 
    }
<a onClick="fn01()" > get a tag</a> 
 
<br/><br/> 
 
<div id="link"> 
 

 
</div>