6

ルート「clients」を含むxmlデータがあり、その中に「client」の複数の要素を含めることができます。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 に答える