2009-06-25 186 views
1

我仍然是一個網絡技術的新手,我有幾個問題符合以下代碼。從javascript中的另一個函數調用一個函數

我想從另一個javascript函數displayTable()調用函數getDetails()。 displayTable()在點擊'My CD Facts'按鈕時被調用。

那麼,它不適合我。我猜它有點愚蠢,但我無法弄清楚。我試圖用firebug來診斷它,它說getDetails()沒有被定義。

另外,我有一個基本的css文件來顯示特定風格的表。那也行不通。是因爲我將它與身體聯繫在一起,而我正在使用它?

<script type="text/javascript"> 
var xmlDoc; 

function displayTable() 
{ 
var artistName; 
if (window.XMLHttpRequest) 
    { 
    xmlDoc=new window.XMLHttpRequest(); 
    xmlDoc.open("GET","Artists.xml",false); 
    xmlDoc.send(""); 
    xmlDoc=xmlDoc.responseXML; 
    } 
else if (ActiveXObject("Microsoft.XMLDOM")) 
    { 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async=false; 
    xmlDoc.load("Artists.xml"); 
    } 

document.write("<table class=\"artistTable\" border='1'>"); 
document.write("<th>Artist</th> <th>Title</th>"); 
var x=xmlDoc.getElementsByTagName("CD"); 
for (i=0;i<x.length;i++) 
    { 
    artistName = x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue; 
    document.write("<tr><td><a href=\"javascript:getDetails(artistName);\">"); 
    document.write(artistName); 
    document.write("</a></td></tr>"); 
    } 
document.write("</table>"); 
} 

function getDetails(artistName) 
{ 
    alert(artistName); 
} 

</script> 
</head> 
<body> 
<link rel="stylesheet" type="text/css" href="style.css"> 
<form> 
<input type="button" value="My CD Facts" onclick="displayTable()"/> 
</form> 
</body> 
</html> 

歡呼

回答

1
document.write("<tr><td><a href=\"javascript:getDetails(" + artistName + ");\">"); 
1

一對夫婦的小錯誤。

  1. document.write會清除頁面的其餘部分,因此您插入的腳本已經消失。 您可以嘗試使用document.write,並使用document.getElementById(「id」)。InnerHtml轉換爲div/span。 (即時通訊不是一個JS專家 - 所以你可能想谷歌。),而不是,爲document.writing。
  2. 羅尼說,但有幾個單引號。 (「< tr> < td> < a href = \」javascript:getDetails('「+ artist +」'); \「>」);

2

getDetails()不是Javascript插入函數。這是用戶定義的功能。寫這本書Head First Ajax的人在第24頁定義了它們的getDetails()版本。

相關問題