从javascript中的另一个函数调用一个函数
问题描述:
我仍然是一个网络技术的新手,我有几个问题符合以下代码。从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>
欢呼
答
document.write("<tr><td><a href=\"javascript:getDetails(" + artistName + ");\">");
答
一对夫妇的小错误。
- document.write会清除页面的其余部分,因此您插入的脚本已经消失。 您可以尝试使用document.write,并使用document.getElementById(“id”)。InnerHtml转换为div/span。 (即时通讯不是一个JS专家 - 所以你可能想谷歌。),而不是,为document.writing。
罗尼说,但有几个单引号。 (“< tr> < td> < a href = \”javascript:getDetails('“+ artist +”'); \“>”);
答
getDetails()不是Javascript插入函数。这是用户定义的功能。写这本书Head First Ajax的人在第24页定义了它们的getDetails()版本。