私は小さなウェブサイトのアイデアに取り組んでいますが、これについてはあまり得意ではありません。基本的に、XML で定義した質問をユーザーに表示する HTML クイズがあります。
window.onload = function xml()
{
// get form from HTML
var form = document.getElementById("form");
// get XML document
if (window.XMLHttpRequest)
{
var xmlhttp = new XMLHttpRequest();
}
// open XML
xmlhttp.open("GET", "questions.xml", false);
xmlhttp.send(null);
// initialize elements for do document, questions, and details
var xmlDoc = xmlhttp.responseXML;
var question = xmlDoc.getElementsByTagName("question");
上記の行で、「null のメソッド 'getElementsByTagName' を呼び出せません」というエラーが表示されます。ただし、奇妙なことに、XML ファイルに複数の「質問」タグがある場合にのみ、上記のエラーが発生します。XML に "question" タグが 1 つしかない場合、関数全体が完全に機能します。この場合、何が起こっているのか、なぜうまくいかないのか疑問に思っています。
(以下のコードの残りの部分は、関数を使用し始める場所を示しています)
var qXML = xmlDoc.getElementsByTagName("q");
// write values into HTML for each question
for ( i = 0 ; i < question.length ; i++ )
{
// qBlock div for question
var div = document.createElement('div');
div.className = "qBlock";
このコードはしばらく続き、HTML 内のすべてのフィールドを取得します。全体として、ループ内のこのコード ブロックは、複数の「質問」要素がない限り、最後まで機能します。
これについて私を助けたり教えたりできる人に感謝します。また、私が他に間違ったことをしている場合は、遠慮なく教えてください。私はどんな批判にもオープンです。