2014-01-14 70 views
4

我無法使用動態生成的HTML代碼中的參數調用javascript函數。無法在動態生成的HTML中調用javascript函數

當我沒有傳遞任何參數時,調用相同的函數成功,但函數調用失敗的參數。不確定它是否是語法錯誤。下面

是我的代碼:

<!DOCTYPE html> 
    <html> 
     <body> 

      <p>Click the button to call a function with arguments</p> 
      <button onclick="myFunction('Harry Potter','Wizard')">Try it</button> 

      <script> 
      function myFunction(name,job) { 
       var name="prasad"; 
       var str='<a href="#" onclick="javascript: fun('+name+')">link</a>'; 
       document.write(str); 
      }; 

      function fun(id1) { 
       alert("fun menthod "+id1); 
      } 
      </script> 
     </body> 
    </html> 

如果我沒有通過它獲取成功調用參數。

+0

通常當你無法從HTML中調用JS這意味着有一個JS錯誤,打開JS控制檯,並期待 – nrathaus

+0

BTW:它的工作原理上的jsfiddle - http://jsfiddle.net/#&togetherjs=wHI6Ep7zgl – nrathaus

+0

我想你代碼並且它正在工作......(良好實踐:不要聲明同一個變量兩次:名稱,它已被聲明爲一個參數,因此,僅在沒有「var」標記的情況下影響新值)。 – ylerjen

回答

1
<!DOCTYPE html> 
<html> 
<body> 
<div id="next"> 
<p>Click the button to call a function with arguments</p> 
<button onclick="myFunction('Harry Potter','Wizard')">Try it</button> 
</div> 
<script> 
function myFunction(name,job) 
{ 
var a='"'; 
a=a+name+a; 
var str="<a href='#' onclick='fun("+a+")'>link</a>"; 
document.getElementById('next').innerHTML=str; 
} 
function fun(id1) 
{ 
alert("fun menthod "+id1); 
} 
</script> 
</body> 
</html> 
+0

謝謝大家對你的及時迴應 – Aaliya

+0

代碼現在正在工作:) – Aaliya

+0

歡迎:) – Shn

0

這裏:var name="prasad";你改變'name'參數的值可能這是你的問題。嘗試刪除此行並查看輸出。

1

刪除此行,因爲變量名是相同的參數名稱

var name="prasad"; 
0

改變名稱:

var name="'prasad'"; 

我看到語法錯誤在JS控制檯,否則。