0

私はJQuerymobileを学ぼうとしています.JQueryMobileがそのようなことをサポートしているかどうかを確認したいだけで、以下のようなことをしています.

function BooksCategory () {
        ID          = '';
        title       = '';
        imgURL      = '';
        description = '';
        bookCounts= '';
        Books       = [];
};
function Books () {
        categoryID           = '';
        bookID               = '';
        name                 = '';
        imgURL               = '';
        Cost         = '';
        termsandcondition    = '';
}
this.booksCategory = [];

ParseResponse()
{
     session.CatagoriesCount = response.BooksCategory.length;

     for (var k=0; k < session.CatagoriesCount; k++)
     {
       session.booksCategory[k]  = new BookCategory();

       var NoOfBooks = session.BooksCategory[k].bookCounts

       for (var j=0; j<NoOfBooks; j++)

        session.booksCategory[k].Books[j]   = new Books();  
    }    

}

このステートメントで "Uncaught TypeError: Cannot read property '0' of" が表示される理由

session.booksCategory[k].Books[j]   = new Books(); 

これが正しい方法でない場合、配列内に配列を動的に作成するにはどうすればよいでしょうか?

よろしくラヴィ

4

1 に答える 1

0

変化する

function BooksCategory () {
        ID          = '';
        title       = '';
        imgURL      = '';
        description = '';
        bookCounts= '';
        Books       = [];
};

function BooksCategory () {
        this.ID          = '';
        this.title       = '';
        this.imgURL      = '';
        this.description = '';
        this.bookCounts= '';
        this.Books       = [];
};

BooksCategoryを使用して作成されたインスタンスにBooksプロパティを追加しますnew。それがないと、session.booksCategory[k].Books存在しないので、その要素を取得できない[0]ため、エラーが発生します。

コンテキストthisはjavascriptで暗黙的ではありません。

そしてもちろん、他のクラスについても同様に行います。

編集 :

交換してください

var NoOfBooks = session.BooksCategory[k].bookCounts

var NoOfBooks = session.booksCategory[k].bookCounts;
于 2012-10-10T14:08:16.013 に答える