2009-06-25 21 views
1

私はまだWeb技術の初心者ですが、次のコードに沿っていくつか質問があります。javascriptの別の関数から1つの関数を呼び出す

別のJavaScript関数displayTable()から関数getDetails()を呼び出そうとしています。 ボタン「My CD Facts」をクリックするとdisplayTable()が呼び出されます。

それは私のために働いていません。私はそのいくつかのことが大嫌いだと思いますが、私は理解できません。私は火かき棒で診断しようとしましたが、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.getElementById( "id")を使用してdocument.writeを使用する代わりに、InnerHtmlをdiv/spanに使用できます。 (私はjsの専門家ではない - だからあなたはGoogleにしたいかもしれない。)代わりに、document.writingのために。
  2. ronyが言ったことだが、1つの反転したカンマが2つあります。

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

2

getDetails()はJavascriptのbuit-in関数ではありません。これはユーザー定義関数です。 Head First Ajaxという本を書いた人々は、24ページのgetDetails()のバージョンを定義しました。

関連する問題