2012-02-11 10 views
0

それぞれのアイテムノードにValueObjectを設定するためにループしている単純なxmlファイルがあります。作成された各VOは、LinkedListデータ構造に追加されます。 linkedListは.each()ループの外側でインスタンス化されます。しかし、何らかの理由で、私のlinkedListインスタンスがループ内で "undefined"を返します。例えば:this.linkedListdataコレクションの実際の項目のlinkedListプロパティに仰視されているためjQueryの解析XML。定義されていない問題

Model.prototype.setData = function(data) { 
    this.data = data; 

    this.linkedList = new LinkedList(); 

    this.startItem = $(data).find('slideShow').attr('startItem'); 
    this.currentID = this.startItem || 1; 

    $(data).find('item').each(function() { 
     var imageVO = new ImageVO(); 
     imageVO.id = $(this).find('id').text(); 
     imageVO.image = $(this).find('image').text(); 
     imageVO.title = $(this).find('title').text(); 
     console.log(this.linkedList) //undefined 
     this.linkedList.addNode(imageVO); 
    }); 

    this.linkedList.currentNode = this.linkedList.findNodeByIndex(this.currentID); 
} 

答えて

1

です。

これを試してみてください:

var that = this; 
$(data).find('item').each(function() { 
    var imageVO = new ImageVO(); 
    imageVO.id = $(this).find('id').text(); 
    imageVO.image = $(this).find('image').text(); 
    imageVO.title = $(this).find('title').text(); 
    console.log(that.linkedList) //undefined 
    that.linkedList.addNode(imageVO); 
}); 
+1

私はそれが 'にconsole.log()は' '文はlinkList'、ない' linkedList'という属性のためのものであることを言及も価値があると思います。 –

+0

あなたは正しいです。ちょうどそれを修正した。 – czerasz

+0

ありがとうございました。私は "linkList"(typo)ではなく "linkedList"を説明するためにこれを修正しました。早速のお返事ありがとうございます!この回答は、(私がjavascriptに関して知っていることについて)多くのことを視点に入れたものです。 – worked