2011-12-15 17 views
3

我一直在嘗試了幾個小時爲了解決這個問題,我看不出有什麼不對:行情在Javascript

document.getElementById('detail'+num).innerHTML='<a class="dobpicker" href="javascript:NewCal('+s_d+','+ddmmyy+')">' 

的問題是HREF =「JavaScript的......」 S_D是一個JavaScript變量定義爲

var num = 2; 
var s_d = "sname"+num; 
var ddmmyy = "ddmmyy"; 

基本上我需要每次調用不同參數的javascript函數。

回答

6

使用類似\'的反斜槓。

document.getElementById('detail'+num).innerHTML= 
'<a class="dobpicker" href="javascript:NewCal(\''+s_d+'\',\''+ddmmyy+'\')">' 
1

因爲這是一個href屬性的值,HTML編碼它們:

document.getElementById('detail'+num).innerHTML='<a class="dobpicker" href="javascript:NewCal(&quot;'+s_d+'&quot;,&quot;'+ddmmyy+'&quot;)">' 

或更好,但不要用javascript:協議:

[0,1,2,3,4,5].forEach(function(num) { 
    var s_r = "sname"+num; 
    var ddmmyy = "ddmmyy"; 
    var aEl = document.createElement("a"); 
    aEl.className = "dobpicker"; 
    aEl.onclick = function() { 
     NewCal(s_d, ddmmyy); 
    } 
    document.getElementById('detail'+num).appendChild(aEl); 
}); 
+0

我想這只是在頁面加載時才完成一次,但如果沒有,您還需要在添加新元素時刪除前一個元素。 – nnnnnn 2011-12-15 20:51:17

1

.innerHTML設置使用s_d,但您的變量聲明有s_r

編輯:這是第一件事,我跳出來。仔細一看,發現這些值是字符串,我認爲修改變量名並加上一些逃脫的引號,就像Daniel A. White的答案一樣。

相關問題