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

问题描述 投票:0回答:1

我有由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个问题。

或者如果代码中的第3行可用(不是由“//”停止)。当我通过//停止这第3行时:

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

游戏工作无限问题?!

请问有什么问题?

javascript xml random
1个回答
1
投票

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

let uinfo = arr_quiz[i].getElementsByTagName('uinfo');
quizzes[i].uinfo = uinfo ? uinfo[0].childNodes[0].nodeValue : '';
© www.soinside.com 2019 - 2024. All rights reserved.