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 回答