6

我有带有根“客户端”的 xml 数据,它可以在其中包含多个“客户端”元素。有时 XML 文件中没有返回客户端元素(这没关系)。我需要确定是否返回了任何客户端元素,因此我尝试使用:

if(typeof myfile.getElementsByTagName("client")){
  alert("no clients");
}

这完成了预期的工作,但只要没有“客户端”元素,我就会收到一个萤火虫错误。

4

2 回答 2

17

为什么不只检查 NodeList 的长度?

if( myfile.getElementsByTagName("client").length == 0 )
{
 alert("no clients");
}

添加此项以检查是否已定义 myfile

if( typeof myfile == "undefined" || myfile.getElementsByTagName("client").length == 0 )
{
 alert("no clients");
}
于 2012-12-24T06:31:56.330 回答
3

尝试:

if (!myfile.getElementsByTagName("client").length) {}
//                                          ^ falsy (0) if no elements

如果您不确定是否myfile作为元素存在,则应首先检查:

if (typeof myfile !== 'undefined'
    && myfile.getElementsByTagName 
    && myfile.getElementsByTagName("client").length) {}
于 2012-12-24T06:32:28.717 回答