2011-03-14 15 views
0

私はAppcelerator TitaniumをAndroidアプリ用に使用しています。下のコードは、Androidエミュレータでエラーを生成します。私のJavascriptかAppceleratorのものかどうかはわかりません。getAttributeを使用している間にエラーが発生しました。

これは、いくつかの理由でのgetAttributeに反対し、次のエラーを与える:

TypeError例外を:

(:未定義の "のgetAttribute"(//pages/xml.js#12アプリ)メソッドを呼び出すことはできませんそれはフォーマットのために下の行#12ではないかもしれません!! Thx)

getAttributeが問題の原因となっている理由は誰にも分かりますか? Pastie上のコードも利用可能

// BEGIN SAMPLE CODE 

var xhr = Titanium.Network.createHTTPClient(); 

xhr.onload = function() 
    { 
     var xmlDoc = this.responseXML.documentElement; 
     var xlocalestatus=xmlDoc.getElementsByTagName('Locations'); 
     var xbooks=xmlDoc.getElementsByTagName('Books'); 
     var newname = ''; 

     for (i=0;i<xlocalestatus.length;i++) 
     { 
      newname = xbooks[i].getAttribute('Name'); 
      Ti.API.info(newname); 
     } 
    }; 

// open the client 

xhr.open('GET','http://myurl.com'); 

// send the data 

xhr.send(); 


// END SAMPLE CODE 

:ここ

はコードで、ここでhttp://pastie.org/1670908

おかげ

答えて

0

つまり、xbooks[i]は、あなたが未定義の値上のgetAttributeを呼んでいると言っています未定義。

これは、接続しているサーバーから期待される結果が返されないことを示している可能性があります。戻ってくるものと正確にはxbooksおよび/またはその要素が設定されているものを正確に調べる必要があります。

0

xlocalestatusとxbooksの長さが同じであることが予想されます。おそらく、これらの2つのアレイの実際の長さは異なります。最初のものが10で2番目のものが8であるとしましょう。xbooks [9]にアクセスすると、このエラーが発生し、xbooks [9]は未定義です。