2009-06-25 225 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()版本。

相关问题