在javascript中从另一个函数调用一个函数

时间:2009-06-25 16:52:29

标签: javascript html css

我仍然是网络技术的新手,我有几个问题符合以下代码。

我正在尝试从另一个javascript函数displayTable()调用函数getDetails()。 单击“我的CD事实”按钮调用displayTable()。

嗯,它不适合我。我猜它有点蠢,但我无法搞清楚。我尝试用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>

欢呼声

3 个答案:

答案 0 :(得分:2)

getDetails()不是Javascript buit-in函数。它是用户定义的功能。编写Head First Ajax一书的人定义了第24页的getDetails()版本。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

一些小错误。

  1. document.write清除页面的其余部分,因此您插入的脚本已经消失。 您可以尝试使用document.getElementById(“id”)。InnerHtml到div / span,而不是使用document.write。 (我不是js专家 - 所以你可能想谷歌那个。),而不是document.writing。
  2. rony说,但有几个单引号。

    document.write(“&lt; tr&gt;&lt; td&gt;&lt; a href = \”javascript:getDetails('“+ artist +”'); \“&gt;”);