1

多次元配列の新しい入力があります。すでに定義されている元の入力は、呼び出されたときに正しく表示されますが、新しい入力は「未定義」と書き込まれます。新しい入力を変数として認識していると思います。どのようにしてそれらを文字列として表示させるのですか?

var original = new Array(); //this is the array
function input(title, artist, ddate, genre, picsrc) {
    this.Title = title;
    this.Artist = artist;
    this.Ddate = parseInt(parseFloat(ddate));
    this.Genre = genre;
    this.Picsrc = picsrc;
}
original[0] = {title:"Hope II", artist:"Gustav Klimt", ddate:1907, genre:"Art Nouveau", picsrc:"gustav.jpg"}; //and so on

配列に追加される値は、フォームから取得されます。

function addit(form) {
G = form.Title.value //as a test

original[original.length++] =  new input(form.Title.value, form.Artist.value, form.Ddate.value, form.Genre.value, form.Picsrc.value)

alert("your entry has been added")
alert(G) //value shows up in the alert
}

ただし、この関数でコールバックされると、次のようになります。

$("#info").html(original[currentrecord]["title"]+"<br /><h2>"+original[currentrecord]["artist"]+"</h2>"+original[currentrecord]["ddate"]+"<br />"+original[currentrecord]["genre"]);

すべてが「未定義」として書き込まれています。データが配列に正常に追加されていると思いますが、正しい形式ではない可能性がありますか?

4

1 に答える 1

1

私はドット表記を使用することを好みますが、それは必須ではありません。

本当の問題は次のとおりです。JavaScriptは大文字と小文字を区別します。

私はこのようにします:

original[currentrecord].Title
original[currentrecord].Artist

等々...

コードのある場所ではすべて小文字を使用していますが(original [0]を初期化する場合)、コンストラクター関数では最初の文字に大文字を使用しています。

于 2012-04-29T23:01:27.577 に答える