I'm still a novice with web technologies and I have a few questions in line with the following code.
我仍然是网络技术的新手,我有几个问题符合以下代码。
I'm trying to call a function getDetails() from another javascript function displayTable(). displayTable() gets invoked on clicking the button 'My CD Facts'.
我正在尝试从另一个javascript函数displayTable()调用函数getDetails()。单击“我的CD事实”按钮时会调用displayTable()。
Well, its not working for me. I guess its some thing daft but I'm not able to figure out. I tried to diagnose it with firebug and it says getDetails() is not defined.
好吧,它不适合我。我猜它有点蠢,但我无法搞清楚。我尝试用firebug进行诊断,并说没有定义getDetails()。
Also, I have a basic css file for displaying the table in a particular style. That's not working either. Is it because I linked it in the body and I'm using it in the head?
另外,我有一个基本的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>
cheers
3 个解决方案
#1
getDetails() is not a Javascript buit-in function. It is a user defined function. The people that wrote the book Head First Ajax defined their version of the getDetails() on page 24.
getDetails()不是Javascript buit-in函数。它是用户定义的功能。编写Head First Ajax一书的人在第24页定义了他们的getDetails()版本。
#2
document.write("<tr><td><a href=\"javascript:getDetails(" + artistName + ");\">");
#3
A couple of minor mistakes.
一些小错误。
- document.write clears off the rest of the page, so the script you have slotted in has gone. You could try instead of using document.write, using document.getElementById("id").InnerHtml to a div / span. (im not a js expert - so you may want to google that.), instead, for the document.writing.
-
what rony said, but with a couple of single inverted commas.
罗尼说,但有一些单引号。
document.write("< tr>< td>< a href=\"javascript:getDetails('" + artist + "');\">");
document.write(“ ”);
document.write清除了页面的其余部分,因此您插入的脚本已经消失。您可以尝试使用document.getElementById(“id”)。InnerHtml到div / span,而不是使用document.write。 (我不是一个js专家 - 所以你可能想谷歌那个。),而不是document.writing。
#1
getDetails() is not a Javascript buit-in function. It is a user defined function. The people that wrote the book Head First Ajax defined their version of the getDetails() on page 24.
getDetails()不是Javascript buit-in函数。它是用户定义的功能。编写Head First Ajax一书的人在第24页定义了他们的getDetails()版本。
#2
document.write("<tr><td><a href=\"javascript:getDetails(" + artistName + ");\">");
#3
A couple of minor mistakes.
一些小错误。
- document.write clears off the rest of the page, so the script you have slotted in has gone. You could try instead of using document.write, using document.getElementById("id").InnerHtml to a div / span. (im not a js expert - so you may want to google that.), instead, for the document.writing.
-
what rony said, but with a couple of single inverted commas.
罗尼说,但有一些单引号。
document.write("< tr>< td>< a href=\"javascript:getDetails('" + artist + "');\">");
document.write(“ ”);
document.write清除了页面的其余部分,因此您插入的脚本已经消失。您可以尝试使用document.getElementById(“id”)。InnerHtml到div / span,而不是使用document.write。 (我不是一个js专家 - 所以你可能想谷歌那个。),而不是document.writing。