如果XML中超过204的问题,则随机不起作用

时间:2019-03-19 04:12:20

标签: javascript xml random

我有一个用javascript和xml数据库编写的问答游戏,用于像这样的拼字游戏:

<trivia>
    <quiz>
        <que>Aluminum</que>
        <ca>Al</ca>
        <ia>Am</ia>
        <ia>A</ia>
        <ia>Au</ia>
    <uinfo>Aluminum is available becouse petrole cheap.</uinfo>
    <diff>1</diff><rank>0</rank></quiz>
</trivia>

以及游戏中的以下代码:

  // adds in quizzes each 'quiz' element with question (<que>), correct answer(<ca>), and incorrect answers(<ia>)
  quizzes[i]['que'] = arr_quiz[i].getElementsByTagName('que')[0].childNodes[0].nodeValue;      // question
  quizzes[i]['ca'] = arr_quiz[i].getElementsByTagName('ca')[0].childNodes[0].nodeValue;      // correct answer
  quizzes[i]['uinfo'] = arr_quiz[i].getElementsByTagName('uinfo')[0].childNodes[0].nodeValue;      // useful info

有2个选项(样式)的测验游戏:序列问题或随机问题。

序列问题很好用,但是当我选择(随机问题)时,测验游戏在以下情况下不起作用:

xml文件中的问题总数超过204个问题。

或代码中的第三行可用(不被“ //”停止)。当我通过//停止第三行时:

//quizzes[i]['uinfo'] = arr_quiz[i].getElementsByTagName('uinfo')[0].childNodes[0].nodeValue;      // useful info

游戏可以使用不限字符吗?!

请问是什么问题?

1 个答案:

答案 0 :(得分:1)

文件中的某些记录缺少uinfo标记,因此在尝试访问此属性时会出现错误。您需要检查它是否存在。

let uinfo = arr_quiz[i].getElementsByTagName('uinfo');
quizzes[i].uinfo = uinfo ? uinfo[0].childNodes[0].nodeValue : '';