2

私は小さなウェブサイトのアイデアに取り組んでいますが、これについてはあまり得意ではありません。基本的に、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 内のすべてのフィールドを取得します。全体として、ループ内のこのコード ブロックは、複数の「質問」要素がない限り、最後まで機能します。

これについて私を助けたり教えたりできる人に感謝します。また、私が他に間違ったことをしている場合は、遠慮なく教えてください。私はどんな批判にもオープンです。

4

1 に答える 1