如何使用javascript检查标记是否存在而不出错

如何使用javascript检查标记是否存在而不出错,javascript,xml,getelementsbyname,Javascript,Xml,Getelementsbyname,我有根“clients”的xml数据,它可以包含多个“client”元素。有时XML文件中没有返回任何客户机元素(这是正常的)。我需要确定是否返回了任何客户端元素,因此我尝试使用: if(typeof myfile.getElementsByTagName("client")){ alert("no clients"); } 这完成了预期的工作,但每当没有“客户机”元素时,我就会收到一个firebug错误 为什么不检查节点列表的长度 if( myfile.getElementsByTagN

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

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

这完成了预期的工作,但每当没有“客户机”元素时,我就会收到一个firebug错误

为什么不检查节点列表的长度

if( myfile.getElementsByTagName("client").length == 0 )
{
 alert("no clients");
}
添加此项以检查是否已定义myfile

if( typeof myfile == "undefined" || myfile.getElementsByTagName("client").length == 0 )
{
 alert("no clients");
}
尝试:

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

if (typeof myfile !== 'undefined'
    && myfile.getElementsByTagName 
    && myfile.getElementsByTagName("client").length) {}

它仍然会发出一条错误消息,指出“null”不是object@VoltzRoad-是否
myfile
null?如果您在控制台中为此页面运行此操作
If(document.getElementsByTagName(“client”).length==0){alert(“no clients”);}
它将提示“no clients”。好的,您是对的。基本上,当没有客户机时,文件是完全空的。因此,它不再是一个合法的xml文档。谢谢你的第一个答案。它帮助我解决了这个问题。@VoltzRoad-很高兴你解决了:)
if (typeof myfile !== 'undefined'
    && myfile.getElementsByTagName 
    && myfile.getElementsByTagName("client").length) {}