我的HTML文件中有很多javascript代码(1500行),我想把它的一部分移动到另一个js文件中。我想创建一个用于导入数据的文件,我可以找到最好的方法。
这是我的gameDataImport.js文件:
function gameImport(gameID){
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","../riskmanagment/Data/gameData.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var numberOfWorkers;
var x=xmlDoc.getElementsByTagName("game");
for (i=0;i<x.length;i++)
{
if(x[i].getAttribute('id') == gameID)
{
this.gameName = x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
this.numberOfWorkers = x[i].getElementsByTagName("numberOfWorkers")[0].childNodes[0].nodeValue;
this.numberOfWorkersLeft = numberOfWorkers;
this.overtimeWorkers = x[i].getElementsByTagName("overtimeWorkers")[0].childNodes[0].nodeValue;
this.overtimeWorkersLeft = overtimeWorkers;
this.difficulty = x[i].getElementsByTagName("difficulty")[0].childNodes[0].nodeValue;
this.budget = x[i].getElementsByTagName("budget")[0].childNodes[0].nodeValue;
this.gameTargetMinutes = x[i].getElementsByTagName("targetGameTime")[0].childNodes[0].nodeValue;
this.gameTargetDays = x[i].getElementsByTagName("targetDays")[0].childNodes[0].nodeValue;
this.gameLanguage = x[i].getElementsByTagName("language")[0].childNodes[0].nodeValue;
this.projectDescriptionText = x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
this.wage = x[i].getElementsByTagName("wage")[0].childNodes[0].nodeValue;
this.Owage = x[i].getElementsByTagName("Owage")[0].childNodes[0].nodeValue;
this.numberOfRisks = x[i].getElementsByTagName("numberOfRisks")[0].childNodes[0].nodeValue;
}
}
这是我尝试获取数据的方式:
头部:
<script type="text/javascript" src="js/gameDataImport.js"></script>
在body中,在脚本标记内:
numberOfWorkers = gameImport(gameID).numberOfWorkers;
但我只收到此错误:
未捕获的TypeError:无法读取属性&#39; numberOfWorkers&#39;未定义的
我没有尝试过多个变量,但会首先尝试这个变量。
答案 0 :(得分:0)
你已经忘记了GameImport函数
的结束花括号答案 1 :(得分:0)
我不知道这是否有帮助,但我解决了这个问题,删除了脚本的类型属性,如下所示:
<script src="js/gameDataImport.js"></script>