我创建了一个连接到API的脚本。该脚本成功解析数据并创建所需的输出。我的脚本遍历记录ID,以提取每个记录ID的数据。
并非每个父级都存在子节点。因此,在父节点具有子节点的地方,我的脚本可以完美运行。
var root2 = root[i].getChild('Assigned').getChildren('Staff');
但是,当我遇到一个不存在子节点的父ID时,会出现此错误。 IE中的客户端尚未在源数据中分配人员到该记录,因此数据节点人员不存在。
TypeError:无法调用null的方法“ getChildren”。
如何处理此错误并忽略并让代码在发生这种情况时继续运行?我尝试过
if(root[i].getChild('Assigned').getChildren('Staff') != '') {
Code
}
但是这仍然会破坏代码,我会收到错误消息。
答案 0 :(得分:0)
我认为问题的原因是root[i].getChild('Assigned')
是null
,并且在脚本中,即使父级{Staff
中未包含Assigned
,没有错误发生。为了消除此问题,如何检查root[i]
是否具有Assigned
的孩子?请尝试以下示例脚本。
if (root[i].getChildren().some(function(e) {return e.getName() == 'Assigned'})) {
// do something
}
在此脚本中,它检查root[i]
是否具有Assigned
的子项,并且在找到子项时,此if
变为true
。因此,如果root[i]
没有Assigned
的子代,则if
变成false
,并且do something
不会运行。